Bonjour,
J'ai terminé mon application et je voudrais la rendre executable(pour ne pas avoir a transporter toute la plate forme eclipse et executer a chaque fois)
Comment faire??
Merci pour votre aide...
Bonjour,
J'ai terminé mon application et je voudrais la rendre executable(pour ne pas avoir a transporter toute la plate forme eclipse et executer a chaque fois)
Comment faire??
Merci pour votre aide...
Tu fais un jar de ton projet et tu le rend exécutable.
Tout est dans la FAQ.
Merci pour la réponse, j'ai vu les solutions, mais c'est pas evident car ça a très bien marché sur une autre application simple.
Je m'explique ...
j'ai fais une aplication et j'ai rajouté beaucoup de fichiers externes.jar(Propriétés->chemin de génération java->Bibliotheque->Ajouter des fichier jar externes)qui sont nécessaires pour l'application.
Est ce que ça peu causer un probleme?
j'ai essayé ça aussi :comment créer un jar executable
http://java.developpez.com/faq/java/...on#creationJar
dans le fichier il y a:
Class-Path: .\archive1.jar .\archive2.jar
archive1.jar et archive2.jar est ce qu'il faut que je les crée avant de creer mon application.jar definitive ?(je n'ai pas bien compris)
j'ai lancer la commande jar dans la console; voici le résultat:
C:\eclipse\Java\jdk1.5.0_11\bin>jar cvfm Proj.jar META-INF/MANIFEST.MF
manifest ajouté
C:\eclipse\Java\jdk1.5.0_11\bin>java -jar Proj.jar
Exception in thread "main" java.lang.NoClassDefFoundError: Start
et pourtant mon main se trouve dans paquet=>Frame.java
que dois je mettre a la place de Main-Class: Start ?
redonner moi svp les etapes a suivre.
est ce que quelqu'un veut bien m'aider.
Merci pour votre aide...
Il faut remplacer les lignes que tu vois dans la FAQ ! Il s'agit d'un exemple.
Pour archive1.jar et archive2.jar c'est aussi un exemple de comment ajouter des liens vers les jars externes nécessaires à ton application.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2Main-Class: com.toto.package.TaClasseAToi Class-Path: .\archive1.jar .\archive2.jar
Pour ne pas te compliquer la vie à chaque fois que tu veux faire le jar, tu peux faire un script ant :
Remplace simplement les valeurs (nom du projet, classpath, etc...) par tes valeurs à toi, ensuite ouvre la perspective ant dans eclipse, ajoute y ce fichier que tu nommes build.xml (de préférence).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 <?xml version="1.0"?> <project name="myfreetv" default="jar" basedir="."> <property name="project.name" value="myfreetv" /> <property name="src" value="src/" /> <property name="build" value="bin/" /> <property name="dist" value="dist/" /> <property name="lib" value="lib/" /> <property name="main" value="net.sourceforge.myfreetv.view.MyFreeTV" /> <target name="init"> <mkdir dir="${build}" /> <mkdir dir="${dist}" /> </target> <target name="compile" description="Compile the project" depends="init"> <javac fork="yes" srcdir="${src}" destdir="${build}" classpath="${lib}" /> </target> <target name="jar" description="JARs the Task" depends="compile"> <jar destfile="${dist}/${project.name}.jar" basedir="${build}" compress="true"> <manifest> <attribute name="Built-By" value="${user.name}" /> <attribute name="Main-Class" value="${main}" /> <attribute name="Class-path" value=". lib/Trendy_1.8.jar lib/jawin.jar lib/xpp3_min-1.1.3.4.O.jar lib/xstream-1.2.1.jar" /> </manifest> </jar> </target> </project>
Et voilà maintenant tu peux jarer en 1 clic![]()
Mon fichier MANIFEST.MF
------------------------
Manifest-Version: 1.0
Created-By: 1.4.1_01 (Sun Microsystems Inc.)
Main-Class: paquet.Frame
Class-Path: .\xmlParserAPIs.jar .\xml.jar etc...
------------------------
Ma classe principale
------------------------
------------------------------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package paquet; import java.awt.Color; import javax.swing.JFrame; ..... public class Frame extends JFrame { .... public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { Frame thisClass = new Frame(); thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); thisClass.setVisible(true); } }); } ....
et voici l'arborescence
projet
paquet
frame.java
frame => la classe
main
------------------------------------------------
C:\eclipse\Java\jdk1.5.0_11\bin>jar cvfm Projet.jar META-INF/MANIFEST.MF
=>Les paquets sont bien ajoutés
mais quand je lance la commande suivante:
C:\eclipse\Java\jdk1.5.0_11\bin>java -jar Projet.jar
=>Exception in thread "main" java.lang.NoClassDefFoundError: paquet/Frame
pourtant main est bien dans frame qui est dans paquet
ça devient impossible![]()
Merci de revoir avec moi svp
A priori c'est l'arborescence qui est fausse. Il ne devrait pas y avoir de répertoire "projet" dans ton jar.
Merci d'utiliser les balises code pour qu'on voit les indentations et le code correctement formaté.
Je t'assure, ant c'est vraiment plus facile
En voici un plus complet, ça te fait la compile le jar et la doc en 1 clic
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 <?xml version="1.0"?> <project name="ants" default="jar" basedir="."> <property name="project.name" value="ants" /> <property name="src" value="src/" /> <property name="build" value="bin/" /> <property name="dist" value="dist/" /> <property name="doc" value="doc/" /> <property name="lib" value="lib/" /> <property name="main" value="notyet" /> <target name="clean" description="Clean the project"> <delete dir="${build}" /> <delete dir="${dist}" /> <delete dir="${doc}" /> </target> <target name="init" description="Init the project"> <mkdir dir="${build}" /> <mkdir dir="${dist}" /> <mkdir dir="${doc}" /> </target> <target name="compile" description="Compile the project" depends="init"> <javac fork="yes" srcdir="${src}" destdir="${build}" classpath="${lib}" /> </target> <target name="jar" description="JARs the Task" depends="compile"> <jar destfile="${dist}/${project.name}.jar" basedir="${build}" compress="true"> <manifest> <attribute name="Built-By" value="${user.name}" /> <attribute name="Main-Class" value="${main}" /> <attribute name="Class-path" value="." /> </manifest> </jar> </target> <target name="javadoc" description="Javadoc" depends="compile"> <javadoc sourcepath="${src}" packagenames="*" destdir="${doc}" charset="utf8" link="http://java.sun.com/javase/6/docs/api" /> </target> <target name="all" description="All" depends="clean,jar,javadoc" /> </project>
Merci pour le code
Le resultat dans la console
Ligne:25Buildfile: C:\eclipse\workspace\Project\build.xml
init:
[mkdir] Created dir: C:\eclipse\workspace\Project\bin
[mkdir] Created dir: C:\eclipse\workspace\Project\dist
[mkdir] Created dir: C:\eclipse\workspace\Project\doc
compile:
BUILD FAILED
C:\eclipse\workspace\Project\build.xml:25: srcdir "C:\eclipse\workspace\Project\src" does not exist!
Total time: 5 seconds
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <javac fork="yes" srcdir="${src}" destdir="${build}" classpath="${lib}" />![]()
C'est parce que tes sources ne sont pas dans le sous-répertoire src
(moi je crée toujours un répertoire src ou je mets les sources).
Change juste:
en
Code : Sélectionner tout - Visualiser dans une fenêtre à part <property name="src" value="src/" />
Ou alors sous eclipse change ton répertoire de sources (c'est plus propre quand même).
Code : Sélectionner tout - Visualiser dans une fenêtre à part <property name="src" value="./" />
Merci pour la réponse.
c'est bon le projet est bien jaré
Quand je clique sur le Projet.jarBuildfile: C:\eclipse\workspace\Project\build.xml
init:
compile:
jar:
[jar] Building jar: C:\eclipse\workspace\Project\dist\Project.jar
BUILD SUCCESSFUL
Total time: 10 seconds
Message d'erreur:
Java Virtual Machine Launcher
Could not find the main class. program will exit
Est ce que c'est encore main qui me crée des problèmes
projet -> paquet -> frame.java -> frame.classe -> main
Merci de m'expliquer
Dansremplace le notyet (qui veut dire "pas encore (défini)") par le nom de ta classe main (par exemple tonpackage.TaClasseMain).
Code : Sélectionner tout - Visualiser dans une fenêtre à part <property name="main" value="notyet" />
Merci pour la reponse
Oui je l'avais déja remplacer avec tous ce qu'il falait changer.
Je vous ferai part dès que que j'aurais trouver d'où vient le probleme.
Merci.
Bonjour kiminfor,
Premièrement :
Dès que tu as réussi à créer un fichier jar, et s'il y a une erreur lorsque tu double-clique dessus, ne pas hésiter à décompresser ce fichier jar.
En décompressant ce fichier jar ( avec un dézippeur ) tu vas pouvoir vérifier ce qu'il y a réellement dedans.
Un jar executable, ce n'est qu'un fichier archive dans lequel sont archivés des fichiers *.class entre autre.
Tintin92
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager