Précédent   Forum du club des développeurs et IT Pro > Java > EDI et OUTILS pour Java
EDI et OUTILS pour Java Environnements de développement pour Java, et outils pour Java
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 17/04/2012, 19h16   #1
getrude
Nouveau Membre du Club
 
Femme
Développeur informatique
Inscription : 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 : 34
Points : 34
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!
getrude est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2012, 09h50   #2
Mathieu.J
Modérateur
 
Homme Mathieu
Ingénieur développement logiciels
Inscription : avril 2004
Messages : 1 180
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Localisation : France

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

Informations forums :
Inscription : avril 2004
Messages : 1 180
Points : 1 831
Points : 1 831
Il faut surtout que tes fichiers .java soient compilés en .class.
Mathieu.J est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2012, 10h17   #3
getrude
Nouveau Membre du Club
 
Femme
Développeur informatique
Inscription : 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 : 34
Points : 34
d'accord, et est ce que j'aurais un moyen de faire ca? si oui, est ce possible dans un batch?
getrude est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2012, 10h26   #4
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 287
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 287
Points : 32 766
Points : 32 766
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
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.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2012, 19h02   #5
getrude
Nouveau Membre du Club
 
Femme
Développeur informatique
Inscription : 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 : 34
Points : 34
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?
getrude est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2012, 10h34   #6
Mathieu.J
Modérateur
 
Homme Mathieu
Ingénieur développement logiciels
Inscription : avril 2004
Messages : 1 180
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Localisation : France

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

Informations forums :
Inscription : avril 2004
Messages : 1 180
Points : 1 831
Points : 1 831
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.
Mathieu.J est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2012, 11h39   #7
getrude
Nouveau Membre du Club
 
Femme
Développeur informatique
Inscription : 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 : 34
Points : 34
@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
getrude est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2012, 12h03   #8
unknow0
Membre expérimenté
 
Avatar de unknow0
 
Homme
Inscription : juillet 2008
Messages : 449
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2008
Messages : 449
Points : 536
Points : 536
Envoyer un message via Skype™ à unknow0
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 ^^
unknow0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2012, 12h12   #9
getrude
Nouveau Membre du Club
 
Femme
Développeur informatique
Inscription : 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 : 34
Points : 34
ah oui en effet, j'ai suivi betement http://skebir.developpez.com/tutoriels/java/ant/

Citation:
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
getrude est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2012, 13h20   #10
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 287
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 287
Points : 32 766
Points : 32 766
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
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.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2012, 14h35   #11
getrude
Nouveau Membre du Club
 
Femme
Développeur informatique
Inscription : 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 : 34
Points : 34
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)
getrude est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2012, 14h53   #12
unknow0
Membre expérimenté
 
Avatar de unknow0
 
Homme
Inscription : juillet 2008
Messages : 449
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2008
Messages : 449
Points : 536
Points : 536
Envoyer un message via Skype™ à unknow0
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 :
"C:\Program Files\Java\jdk1.7.0_03\bin\java" -classpath bin;.\Grammars.jar DHTJKB-01
unknow0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2012, 15h04   #13
getrude
Nouveau Membre du Club
 
Femme
Développeur informatique
Inscription : 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 : 34
Points : 34
ç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)
getrude est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2012, 15h12   #14
unknow0
Membre expérimenté
 
Avatar de unknow0
 
Homme
Inscription : juillet 2008
Messages : 449
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2008
Messages : 449
Points : 536
Points : 536
Envoyer un message via Skype™ à unknow0
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 ^^
unknow0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2012, 15h26   #15
getrude
Nouveau Membre du Club
 
Femme
Développeur informatique
Inscription : 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 : 34
Points : 34
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...)
getrude est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2012, 15h56   #16
getrude
Nouveau Membre du Club
 
Femme
Développeur informatique
Inscription : 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 : 34
Points : 34
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...
getrude est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2012, 16h29   #17
unknow0
Membre expérimenté
 
Avatar de unknow0
 
Homme
Inscription : juillet 2008
Messages : 449
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2008
Messages : 449
Points : 536
Points : 536
Envoyer un message via Skype™ à unknow0
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?
unknow0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2012, 16h48   #18
getrude
Nouveau Membre du Club
 
Femme
Développeur informatique
Inscription : 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 : 34
Points : 34
Citation:
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...

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

Citation:
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
getrude est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2012, 16h59   #19
unknow0
Membre expérimenté
 
Avatar de unknow0
 
Homme
Inscription : juillet 2008
Messages : 449
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2008
Messages : 449
Points : 536
Points : 536
Envoyer un message via Skype™ à unknow0
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)
unknow0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h58.


 
 
 
 
Partenaires

Hébergement Web