ECLIPSE - jar executable

Résolu
melvar
Messages postés
22
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
1 août 2006
- 4 mars 2006 à 11:35
melvar
Messages postés
22
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
1 août 2006
- 4 mars 2006 à 16:07
Bonjour à tous...

Il doit y avoir un truc que je ne pige pas...
Bref, j'utilise Eclipse, sous mac OS.
Mon projet fonctionne sans erreurs.

Je voudrais créer un jar executable. j'exporte donc à partir d'Eclipse. L'export se passe sans pbs, mon jar est créé, si je le décompile il y a bien tous les fichiers nécessaires...

MAIS (car il en faut un) quand je doubleclique sur le .jar, il ne se passe absolument rien... (alors que mon programme devrait écrire des infos dans un terminal...)

Quelqu'un a t il une idée ?

24 réponses

Twinuts
Messages postés
5373
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
10 août 2022
111
4 mars 2006 à 15:47
Bon on va faire simple



tu creer un projet java que tu nome Test(tromp d'inspiration)


ensuite tu fais un clic droit sur ce projet et tu va sur new ->
source folder dans la fenetre tu met src comme source folder et tu
valide.

Maintenant tu fais un clic droit sur source folder et tu fait new->class

tu met Test comme nom(tjrs trop d'inspiration)



cette classe tu la rempli comme suit :



public class Test extends javax.swing.JFrame{

public static void main(String [] args){

new Test().setVisible(true);

}



public Test(){

super("Test");

setSize(new java.awt.Dimension(300, 300));

setLocationRelativeTo(null);

setDefaultCloseOperation(EXIT_ON_CLOSE);

}

}

compile le fichier java (si tu n'est pas en auto build)



maintenant tu fais un fichier ant pour le jar donc clic droit sur la racine du projet new->file

tu met build.xml comme nom et tu valide



ce fichier tu le remplis comme suit:
















































tu save ensuite tu fais un clic droit sur le fichier et tu vas sur Run As-> Ant Build



une fois le jar créé tu ouvre une console dans le repertoire du jar tu fais jar -tvf test.jar

pour verifier si tout est dedans :)

si tout est ok tu fais java -jar test.jar



apres si ca run tu peux executer le jar par un double clic dessus (en fin seulement si ton os le permet)




WORA
3
cs_DARKSIDIOUS
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Membre
Dernière intervention
4 mars 2013
131
4 mars 2006 à 13:27
Salut,

As tu essayé de le lancer à partir d'une console avec java "nomdetonfichierjar" ?

_

<spa></spa>
0
melvar
Messages postés
22
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
1 août 2006

4 mars 2006 à 13:30
je viens de tester

j'ai :
Exception in thread "main" java.lang.NoClassDefFoundError: AzuriaServer/jar
0
Twinuts
Messages postés
5373
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
10 août 2022
111
4 mars 2006 à 13:37
Salut,





tu à bien le champs Main-Class comptenant le nome de ta classe main de reseigné dans le fichier MANIFEST.MF de ton jar?????





Sous eclipse utilise plustot les scripts ant .... voici un exemple d'un build.xml qui fait un jar executable



le main et dans un classe Test qui est dans le package mes_tests



<?xml version="1.0" encoding="UTF-8"?>



<!-- petites variable pour le fun -->







<target name="packaging">

<!-- on fais le ménage avant -->

<delete file="${jar.name}" />



<!-- creéation du jar -->

<jar jarfile="${jar.name}" basedir="./bin" >

<manifest>









</manifest>

</jar>

</target>





avec ant tu peux faire encore plus q'un simple jar






WORA
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
melvar
Messages postés
22
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
1 août 2006

4 mars 2006 à 13:55
j'essaie avec ANT
mais ca me met :

BUILD FAILED: /Applications/eclipse/workspace/AzuriaServer/ant/test.xml:16: Blanc requis avant des attributs.

je comprend pas bien ce qu'il veut dire par là...
0
melvar
Messages postés
22
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
1 août 2006

4 mars 2006 à 14:07
yep, j'arrive à le compiler... mais ca me met toujours la même erreur :

Exception in thread "main" java.lang.NoClassDefFoundError: test/jar
0
Twinuts
Messages postés
5373
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
10 août 2022
111
4 mars 2006 à 14:07
Salut,



peux tu me donner une copie de ce que tu as mis dans le script ant stp

et aussi me donner l'arborecencede ton projet genre



projetX

src

source java

bin

classe java

ant

script ant(nome le build.xml plutot que test)

....

WORA
0
melvar
Messages postés
22
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
1 août 2006

4 mars 2006 à 14:12
bon... du coup g aussi une errer lorque je teste mon projet : Exception in thread "main" java.lang.NoClassDefFoundError

je sais que c un pb de classpath sans doutes mais comment procéder exactement ?
0
melvar
Messages postés
22
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
1 août 2006

4 mars 2006 à 14:26
mon build.xml (repris de l'exemple du haut)

<?xml version="1.0" encoding="UTF-8"?>

<!-- petites variable pour le fun -->



<target name="packaging">
<!-- on fais le ménage avant -->
<delete file="${jar.name}" />

<!-- creéation du jar -->
<jar jarfile="${jar.name}" basedir="./bin" >
<manifest>



</manifest>
</jar>
</target>




Arborescence du projet :

>>AzuriaServer
>> src
>> (default package)
AzuriaServer.java
Commandes.java
... etc
>> JRE System Library [JVM ...
AzuriaServer.class
Commandes.class
RoomManager.class
etc...
build.xml

je précise que à présent mon projet, j'arrive à l'executer dans Eclipse, la génération du .jar marche, mais l'execution de celui-)ci me retourne toujours :
Exception in thread "main" java.lang.NoClassDefFoundError: test/jar
0
melvar
Messages postés
22
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
1 août 2006

4 mars 2006 à 14:28
je sais pas pk mais mon code a pas été copié: je remet le code du build.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- petites variable pour le fun -->



<target name="packaging">
<!-- on fais le ménage avant -->
<delete file="${jar.name}" />

<!-- creéation du jar -->
<jar jarfile="${jar.name}" basedir="./bin" >
<manifest>



</manifest>
</jar>
</target>
0
melvar
Messages postés
22
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
1 août 2006

4 mars 2006 à 14:29
décidement

<?xml version="1.0" encoding="UTF-8"?>

    <!-- petites variable pour le fun -->
   
   
  
    <target name="packaging">
        <!-- on fais le ménage avant -->
        <delete file="${jar.name}" />
       
        <!-- creéation du jar -->
        <jar jarfile="${jar.name}" basedir="./bin" >
            <manifest>
               
               
               
             </manifest>
        </jar>
    </target>
0
melvar
Messages postés
22
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
1 août 2006

4 mars 2006 à 14:31
bien bien... il refuse donc de me publier ce code...

bref c exactement le mm qu'en haut mais avec :
property name="main.class" value="AzuriaServer.AzuriaServer"/>
0
Twinuts
Messages postés
5373
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
10 août 2022
111
4 mars 2006 à 14:32
Ton Main-Class(dans le manifest) c'est bien AzuriaServer (sans le .class) ?

Tu utilise une librairie externe genre un autre jar que la jvm?

Essai d'executer le jar avec java -jar test.jar

Tu n'a pas recopié betement le script qd meme tu l'as adapté hein, hein, dis dis :)

WORA
0
Twinuts
Messages postés
5373
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
10 août 2022
111
4 mars 2006 à 14:37
property name="main.class" value="AzuriaServer.AzuriaServer"/>


c'est faux...

le premier champs de la balise main.class dans mon exemple c'est le nom
d'un package mais toi d'apres ce que je vois tu n'as pas de package
donc met simplement le nom de la class






bon pour ne pas etre pourri par l'arborecence de ton projet deplace les
source du rep src ensuite tu supprime le rep src et la tu fais un
clique droit sur le projet tu va sur new->source folder et tu lui
met src comme nom et tu replace tes .java dans le repertoire src comm
ca les .class iront dans le repertoire bin qui va etre créé (histoire
d'etre plus propre) :)


WORA
0
melvar
Messages postés
22
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
1 août 2006

4 mars 2006 à 14:43
vi vi ds le manifest j'ai bien AzuriaServer
0
sheorogath
Messages postés
2448
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
17
4 mars 2006 à 14:50
ben quand je fait un export il me propose de mettre le nom de la classe main et il me fait le manifest et tout !!!
meme pas besoin de ant ou tout autre chose

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
Twinuts
Messages postés
5373
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
10 août 2022
111
4 mars 2006 à 14:53
L'avantage de ant c'est qu'il peut faire bien plus qu'un simple jar......

WORA
0
melvar
Messages postés
22
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
1 août 2006

4 mars 2006 à 14:54
je sais, mais j'ai le mm pb avec un export
0
sheorogath
Messages postés
2448
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
17
4 mars 2006 à 14:54
oui javadoc compilation , etc...

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
sheorogath
Messages postés
2448
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
17
4 mars 2006 à 14:57
http://www.javafr.com/tutoriaux/CREER-JAR-EXECUTABLE-AVEC-ECLIPSE_218.aspx

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0