IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI et Outils pour Java Discussion :

Intégrer des fichiers .java non compilés dans un autre programme


Sujet :

EDI et Outils pour Java

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Points : 65
    Points
    65
    Par défaut Intégrer des fichiers .java non compilés dans un autre programme
    Bonjour 'a tous,
    A partir d'un fichier XML je genere, avec la console, des fichiers .java (dans un dossier src). je dois ensuite utiliser ces dossiers comme des librairies dans un nouveau programme java, il faudrait donc que j'aie acces aux classes de mes fichiers .java.
    j'ai tente de maniere un peu hasardeuse d'integrer un .jar cree manuellement 'a partir de mes dossiers mais bien entendu ca ne fonctionne pas, et egalement de copier coller mes dossiers dans eclipse, mais je n'ai toujours pas acces aux classes.
    j'imagine que le souci est que ces fichiers ne sont pas transformes en .jar. est ce que vous auriez une idee pour transformer automatiquement ces fichiers en .jar pour ensuite pouvoir utiliser les methodes qu'ils comportent?
    Merci beaucoup d'avance!

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Il faut surtout que tes fichiers .java soient compilés en .class.

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Points : 65
    Points
    65
    Par défaut
    d'accord, et est ce que j'aurais un moyen de faire ca? si oui, est ce possible dans un batch?

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    si tu en utilse un, ton IDE devrais faire le travail. Sinon, en ligne de commande, c'est l'application javac qu'il faut utiliser, faisant partie du JDK. Pour automatiser le travail, tu peux t'orienter soit vers maven, soit vers ant.

  5. #5
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Points : 65
    Points
    65
    Par défaut
    j'ai deja essaye de creer mes classes avec javac mais il me sort une exception:
    exception in thread "main"
    et pour cause, il n'y a pas de main dans mes fichiers, contrairement aux exemples des tutos que j'ai parcourus. donc est ce que ca veut dire que je n'ai pas moyen d'avoir acces 'a ces classes?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Tu as du te tromper de commande, il n'y a pas besoin de méthode main pour compiler.
    Montre toute ta trace.

    Sinon, le plus simple serait de créer un projet sous ton IDE et de mettre tes sources dans ce projet.

  7. #7
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Points : 65
    Points
    65
    Par défaut
    @echo off
    set MYCLASSPATH="C:\Program Files\VE\veapi.jar;C:\Program Files\VE\marchall-client.jar;VEservice.jar"
    "C:\Program Files\Java\jdk1.7.0_03\bin\java" -cp %MYCLASSPATH% ve.VE -a "GT HTD" -d "FileName" -v rem je genere un fichier xml

    "C:\Program Files\Java\jdk1.7.0_03\bin\java" -classpath "..\generation.jar" generation.commands.CommandLine -script=toto.txt rem je genere des fichiers .java grace 'a ce fichier

    md bin
    "C:\Program Files\Java\jdk1.7.0_03\bin\javac" -sourcepath src -d bin\ src\grammars\toto\definitions\DHTJKB-01.java rem DHTJKB-01 est l'un des fichiers generes, sa classe s'appelle egalement DHTJKB-01
    "C:\Program Files\Java\jdk1.7.0_03\bin\java" -cp bin grammars.toto.definitions.DHTJKB-01
    rem ici j'essaie d'obtenir la classe de ces fichiers. (en fait j'aimerais pouvoir utiliser les classes de tous les fichiers generes...)


    je ne veux pas le compiler directement avec eclipse parce que tout le mecanisme devra pouvoir etre appele par php, 'a la fin. les fichiers generes sont differents 'a chaque fois, j'ajouterai d'ailleurs les classes par ligne de commmande avant d'appeler le programme

  8. #8
    Membre éclairé Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Points : 676
    Points
    676
    Par défaut
    Citation Envoyé par getrude Voir le message
    "C:\Program Files\Java\jdk1.7.0_03\bin\java" -cp bin grammars.toto.definitions.DHTJKB-01
    rem ici j'essaie d'obtenir la classe de ces fichiers. (en fait j'aimerais pouvoir utiliser les classes de tous les fichiers generes...)
    l'erreur viens de la, je pense, ici tu veux lancer la class grammars.toto.definitions.DHTJKB-01 cad executer la method main de cette class .... sauf qu'elle n'existe pas ^^

    "j'aimerais pouvoir utiliser les classes de tous les fichiers generes" a cette etape ils sont compiler et donc utilisable, tant qu'ils sont dans le classpath, par d'autre class.

    je pence que tu voudrais plutot utilisse une class de test ou ton programe les utilisant ^^

  9. #9
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Points : 65
    Points
    65
    Par défaut
    ah oui en effet, j'ai suivi betement http://skebir.developpez.com/tutoriels/java/ant/

    md bin
    javac -d bin\ src\org\sdf\HelloWorld.java
    java -cp bin org.sdf.HelloWorld

    Après la compilation du fichier source, on aura l'arborescence suivante :
    uniquement des classes, pas encore de .jar
    mais si je m'en tiens 'a javac -sourcepath src -d bin\ src\org\sdf\HelloWorld.java
    ("C:\Program Files\Java\jdk1.7.0_03\bin\javac" -sourcepath src -d bin\ src\grammars\toto\definitions\DHTJKB-01.java pour moi), ca ne me genere rien du tout dans bin

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ce serait quand même bien que, en plus des commande, on aie ce qui se passe à l'écran... Sinon on va pas pouvoir deviner ce qui se passe.

  11. #11
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Points : 65
    Points
    65
    Par défaut
    alors en fait le souci vient de l'inclusion de librairies (desolee c'etait un peu idiot de pas decomposer)

    il me dit
    symbol: class edi; error: cannot find symbol

    cette classe se trouve dans un .jar (Grammars.jar), donc j'essaie de l'integrer

    md bin
    "C:\Program Files\Java\jdk1.7.0_03\bin\java" -classpath .\src\grammars\grammars.toto.definitions.DHTJKB-01.java;.\Grammars.jar DHTJKB-01
    "C:\Program Files\Java\jdk1.7.0_03\bin\javac" -sourcepath src -d bin\ src\grammars\toto\definitions\DHTJKB-01.java


    mais il me dit:
    error:could not find or load main class DHTJKB-01 (en effet elle n'a pas de main)

    (du coup error: package grammars does not exist)

  12. #12
    Membre éclairé Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Points : 676
    Points
    676
    Par défaut
    Citation Envoyé par getrude Voir le message
    md bin
    "C:\Program Files\Java\jdk1.7.0_03\bin\java" -classpath .\src\grammars\grammars.toto.definitions.DHTJKB-01.java;.\Grammars.jar DHTJKB-01
    "C:\Program Files\Java\jdk1.7.0_03\bin\javac" -sourcepath src -d bin\ src\grammars\toto\definitions\DHTJKB-01.java
    deja faut compiler avans d'executer

    ensuite c'est le .class est pas le .java qu'il te faut sur le classpath.
    donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\Program Files\Java\jdk1.7.0_03\bin\java" -classpath bin;.\Grammars.jar DHTJKB-01

  13. #13
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Points : 65
    Points
    65
    Par défaut
    ça me donne toujours la même erreur: could not find or load main class DHTJKB-01 (qui est une public final class et ne contient pas de main)

  14. #14
    Membre éclairé Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Points : 676
    Points
    676
    Par défaut
    ha oui pas fait gaffe a sa mais comme je l'ai dis plus haut:
    Citation Envoyé par Unknow0
    je pence que tu voudrais plutot utilisse une class de test ou ton programe les utilisant ^^

  15. #15
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Points : 65
    Points
    65
    Par défaut
    mmm oui mais pour les utiliser il faut que je les transforme en .class si j'ai bien compris!
    mais je pourrais pas tout simplement faire un truc du genre
    "C:\Program Files\Java\jdk1.7.0_03\bin\javac" -source Grammars.jar -d bin\ src\grammars\toto\definitions\DHTJKB-01.java
    histoire qu'il comprenne directement le .jar 'a l'interieur? mais source n'est visiblement pas la bonne commande et je ne trouve pas la bonne


    edit: ca fonctionne avec -classpath (j'etais pourtant sure d'avoir teste...)

  16. #16
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Points : 65
    Points
    65
    Par défaut
    ca a bien transforme les .java en .class mais maintenant j'ai un nouveau souci: quand je fais DHTJKB-01.instance(); (bien reconnu) j'ai cette erreur:

    Exception in thread "main" java.lang.NoClassDefFoundError: grammars/toto/definitions/DHTJKB-01
    at Bench.main(Bench.java:70)
    Caused by: java.lang.ClassNotFoundException: grammars.toto.definitions.DHTJKB-01




    et voila les causes d'apres le net:

    1) Class is not available in Java Classpath. (je pense que si puisque c'est bien reconnu)
    2) You might be running your program using jar command and class was not defined in manifest file's ClassPath attribute.
    3) Any startup script is overriding Classpath environment variable.


    je pense que c'est la cause 2 et que je dois donc continuer de suivre ce super tuto http://skebir.developpez.com/tutoriels/java/ant/ mais un manifest c'est bien quand j'ai un .jar, non? or la j'ai pas de main donc pas de jar.. enfin si j'ai un main mais c'est dans lui que je veux utiliser les classes...

  17. #17
    Membre éclairé Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Points : 676
    Points
    676
    Par défaut
    Citation Envoyé par getrude Voir le message
    ca a bien transforme les .java en .class mais maintenant j'ai un nouveau souci: quand je fais DHTJKB-01.instance(); (bien reconnu)
    forcement sa fait partie de la class java.lang.Class.

    Citation Envoyé par getrude Voir le message
    j'ai cette erreur:

    Exception in thread "main" java.lang.NoClassDefFoundError: grammars/toto/definitions/DHTJKB-01
    at Bench.main(Bench.java:70)
    Caused by: java.lang.ClassNotFoundException: grammars.toto.definitions.DHTJKB-01




    et voila les causes d'apres le net:

    1) Class is not available in Java Classpath. (je pense que si puisque c'est bien reconnu)
    2) You might be running your program using jar command and class was not defined in manifest file's ClassPath attribute.
    3) Any startup script is overriding Classpath environment variable.
    les 3 meme cause: le classpath ne contient pas ta class


    je pense que c'est la cause 2 et que je dois donc continuer de suivre ce super tuto http://skebir.developpez.com/tutoriels/java/ant/ mais
    Citation Envoyé par getrude Voir le message
    un manifest c'est bien quand j'ai un .jar, non?
    oui ^^
    Citation Envoyé par getrude Voir le message
    si j'ai un main mais c'est dans lui que je veux utiliser les classes...
    donc quelle class? et comment tu l'execute?

  18. #18
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Points : 65
    Points
    65
    Par défaut
    forcement sa fait partie de la class java.lang.Class.
    donc une classe de java? ce serait un curieux hasard puisqu'elle vient d'un de mes fichiers 'a moi...

    les 3 meme cause: le classpath ne contient pas ta class
    et ca je peux le faire dans eclipse?

    donc quelle class? et comment tu l'execute?
    la classe DHTJKB-01 toujours. euh je l'execute en cliquant sur run dans eclipse, mais je vais essayer en ligne de commande alors! thanks

  19. #19
    Membre éclairé Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Points : 676
    Points
    676
    Par défaut
    ha si c'est dans eclipse il faut pour ajouter quelque chose au classpath allez dans les propriété run/Debug>ton projet>claspath (et il faut que tu ajoute le dossier bin si c'est toujours dans se dossier que tu met les .class)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fichier Java non compilé
    Par LGnord dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 22/09/2011, 17h00
  2. Réponses: 1
    Dernier message: 28/01/2009, 13h58
  3. Réponses: 6
    Dernier message: 29/01/2008, 18h45
  4. Compiler des fichier java, mais à partire d'un programme Java.
    Par Djobird dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 06/11/2007, 22h44
  5. Réponses: 11
    Dernier message: 13/03/2006, 18h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo