Creation d'un fichier jar executable

Signaler
Messages postés
34
Date d'inscription
lundi 6 août 2007
Statut
Membre
Dernière intervention
27 février 2008
-
 Utilisateur anonyme -
salut à tous,
Je veux créer un fichier ".jar" qui va contenir ma classe excécutable, ainsi que les librairies nécessaires à son fonctionnement.
je lance la comande:
 jar cvmf gesCompte.jar MANIFEST.MF *.class d:\mescomptes\trans.jar d:\mescomptes\sync.rar

j'ai ces messages:

java.io.IOException: line too long
       at java.util.jar.Attributes.read(Attributes.java:362)
       at java.util.jar.Manifest.read(Manifest.java:167)
       at java.util.jar.Manifest.(int)(Manifest.java:52)
       at sun.tools.jar.Main.run(Main.java:123)
       at sun.tools.jar.Main.main(Main.java:903)  

quelqu'un peut m'aider pour ça ?
merci d'avance

14 réponses

Messages postés
25
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
14 avril 2011

Salut,
Ecoute, je ne sais pas sur quel IDE tu travaille mais normalement tu peut créer to .jar en executant "build project " dans ton IDE. et si tu veux que ca soit executable cad .exe tu peut utiliser javaExe.

Non n'utilise pas javaExe, ce ne sera pas portable sous Linux, c'est nul. Essaie de ne pas appeler ton fichier MANIFEST.MF. Il y a sûrement autre chose. C'est un peu la facilité de dire que tu vas passer apr ton IDE, ce serait plus intéressant pédagogiquement de comprendre pourquoi ça ne marche pas avec ta ligne de commande. Essaie aussi de retirer le fichier .rar juste pour voir si ça vient de là. Quelle version de java utilises-tu?

yeah! vive java

Mets plutôt ce que tu mets dans sync.rar sous forme décompressée. L'archive Java est elle-même compressée, ça suffit largement normalement. Moi je fais comme ça pour mon jar en Java 1.6 :
jar cmf tuer.jar main/GameModel.class main/PlayerModel.class main/BotModel.class ......

Ensuite, pour exécuter ton jar, tu fais :
java -jar gesCompte.jar
En fonction du système d'exploitation que tu utilises, tu peux même lancer ton archive java en double-cliquant sur son icône. Sous Solaris, tu peux même taper ceci :
./gesCompte.jar
Alors ton archive est traitée comme un exécutable binaire classique.

Tu vois, tu n'as pas besoin d'utiliser javaExe! C'est bien une réponse de windowsien! A quoi ça sert de faire du java si ton code n'est pas portable? Autant faire du C# si tu veux que ça ne marche que sous Windows (sauf si tu te sers de mono mais là tu dois recompiler il me semble). [auteurdetail.aspx?ID=1077306 Adel85]t'a répondu à côté de la plaque, c'est comme si je te demande de me passer un marteau et que tu me passes une perceuse!
Cependant, depuis Eclipse, JBuilder et Netbeans, il existe un moyen de générer une archive java à partir de ton projet. Tu dois faire attention car le problème que tu as eu en ligne de commande peut se reproduire sous un IDE, c'est pour ça qu'il faudrait mieux que tu comprennes précisément d'où vient ton erreur.
yeah! vive java
Messages postés
37
Date d'inscription
jeudi 8 novembre 2007
Statut
Membre
Dernière intervention
18 mai 2012

je travalle avec netbeans 6.1 sous linux, je termine un bon programme avec bonne interface graphique,


main le ^probleme c'est comment faire pour creer un fichier exécutable pour apartir d'un simple double click j'execute mon programme


car maintenant je fait l'execution, j'ouvre le code source et apreje fait l'execution


 


svp si quelqu"un sait comment faire  me repond et mercie d'avance


c'est moi suikou100 un etudiant tunisien ret mercie pour tout le monde
Messages postés
37
Date d'inscription
jeudi 8 novembre 2007
Statut
Membre
Dernière intervention
18 mai 2012

bonjour!
j'ai beau fai des recherches et g pa bien compris
j'en ai besoin de faire un fichier java executable
je vau quand ja fai un double clic mon interface apparait
c parceque je travaille a linux et c fatiguant de monter le terminal chaque fois et trouver le chemin du fichier
alors g construit un fichier.jar de mon application,ce fichier marche bien sous windows comme executable,un double clic et mon interface apparait;
mais sous linux il s'ouvre comme un archive;
svp aider moi
merci

<!-- / message -->
Messages postés
25
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
14 avril 2011

A mon avis c'est impossible de lancer avec un double clic ton application depuis ta distribution Linux. C'est ca qui fait de Linux un systeme d'exploitation un peu invincible contre les virus. Donc pour lancer ton jar il faut le lancer via un terminal ou konsole.

Bonjour

Adel85 tu dis vraiment n'importe quoi! Tu ferais mieux de rien dire plutôt que de sortir de telles énormités! Ce n'est pas du tout ça qui fait "l'invincibilité" de Linux, ça dépend de l'utilisateur, de ses pratiques et c'est surtout le fait que normalement, sous Linux, tu ne passes pas ton temps à te connecter en mode administrateur (alors que sous Windows c'est "comme" si tu étais presque tout le temps administrateur) alors quand un virus débarque, 99.999999% du temps il a été compilé avec des dépendances avec Windows donc il ne peut même pas s'exécuter sous Linux, et pour le 0.0000001% restant, s'il a une change de tourner sous Linux, sans les droits root, il ne risque pas de faire beaucoup de dégâts à part effacer quelques fichiers mais absolument pas mettre en danger le système lui-même. Les failles sont corrigées assez vite donc, si l'utilisateur met son Linux à jour fréquemment, ça limite pas mal les risques.

Adel85, j'ai plusieurs jeux vidéo en Java que je lance par un raccourci sur le bureau, ce n'est pas tout récent, je fais ça depuis des années. Plusieurs "window managers" permettent ça sous Linux dont KDE et GNOME au moins à ma connaissance. J'avais même mis un raccourci pour mon petit-frère pour qu'il lance mon propre jeu quand il était sous Linux, ça m'a pris moins d'une minute, il ne faut pas être un prix nobel pour faire ça : click droit -> "Créer un nouveau" -> "lien vers une application" et après tu configures le répertoire courant où se lance ta commande et ta commande elle-même.

Si ça ne suffit pas, voici d'autres solutions. Twinuts a déjà abordé ce sujet sur le forum. Il suffit de créer un script shell avec l'extension .sh ou bien .desktop (pour cette dernière extension, demande à Twinuts, il est plus au courant que moi). Il faut rendre le script exécutable en lui donnant les droits avec la commande chmod et l'option +x. Ton script va surement ne contenir que la ligne que tu tapes d'habitude dans la console. Un autre moyen qui ne dépend pas du système d'exploitation est de passer par Java WebStart. Une fois que ton système sait qu'il doit ouvrir un fichier JNLP avec Java Webstart, tu peux aller dans le panneau de configuration de Java Webstart (javaws -viewer) et demander à créer un raccourci sur le bureau une fois que tu as lancé l'application au moins une fois sur ta machine.

Messages postés
37
Date d'inscription
jeudi 8 novembre 2007
Statut
Membre
Dernière intervention
18 mai 2012

salut gouessej tu a expliquer beaucoup pour la creation d'un .jar executable d'un programme java
je trouve le .jar mais comment l'executer et quoi faire dans le script shell que tu as dit
avec netbeans sous windows on le fichier .jar  s'execute par un  double  click;

Bonjour

S'il te plaît, ne me parle pas de Netbeans, je t'explique pourquoi. Tu ne dois pas être dépendant d'un IDE en particulier, il faut d'abord comprendre comment fonctionne Java en profondeur et après, pour gagner du temps, tu peux envisager d'utiliser un IDE. Toi tu fais l'inverse. Du coup, tu ne sais pas comment lancer un JAR sans ton IDE. Ne me parle pas de Windows non plus, je ne l'utilise pas et je ne vais pas l'installer juste pour toi même si je veux t'aider.

Supposons que ton JAR s'appelle sikou.jar et qu'il se trouve dans le bureau, ton script shell (lui aussi dans le bureau), appelons le sikou.sh, va juste contenir ceci :
java -jar sikou.jar

Ensuite, fais ceci dans ta console en te mettant dans le répertoire de ton bureau :
chmod u+x sikou.sh

Maintenant, je pense que ça doit marcher, tu peux double-cliquer dessus. N'oublie pas que c'est une façon de faire, ce n'est pas la seule. Bon courage.


Autre conseil, n'utilise pas JavaExe, ça ne sert à rien de faire du Java si ce que tu fais ne marche que sous Windows.

Messages postés
37
Date d'inscription
jeudi 8 novembre 2007
Statut
Membre
Dernière intervention
18 mai 2012

salut gouessej.
c'est moi sikou100.
mon projet est Test et donc le fichier executable est Test.jar
je lance la commande java -jar Test.jar dans le teminale
mais j'ai eu l'exception suivante:
Exception in thread "main" java.lang.NoClassDefFoundError: test.NewJFrame
   at java.lang.Class.initializeClass(libgcj.so.8rh)
Caused by: java.lang.ClassNotFoundException: javax.swing.GroupLayout not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:Test.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
   at java.net.URLClassLoader.findClass(libgcj.so.8rh)
   at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.8rh)
   at java.lang.ClassLoader.loadClass(libgcj.so.8rh)
   at java.lang.ClassLoader.loadClass(libgcj.so.8rh)
   at java.lang.Class.forName(libgcj.so.8rh)
   at java.lang.Class.initializeClass(libgcj.so.8rh)
svp comment faire pour faire l'excution de programme.

Bonjour

Déjà, utilise la "vraie" JVM de Sun. Là tu utilises GCJ et dans ta version, il n'y a pas la classe GroupLayout. Va sur : dans la rubrique "download", cherche Java SE 1.6 et prends le JDK 1.6 pour l'installer.

Messages postés
37
Date d'inscription
jeudi 8 novembre 2007
Statut
Membre
Dernière intervention
18 mai 2012

svp je n'a pas trouver le bon jdk que tu m'a dit de le telecherger

svp donne moi le lien exacte pour le telecharger.(JDK 1.6 sous linux)(fedora core 7). et merci tres biens

Bonsoir

Va là : http://java.sun.com/javase/downloads/index.jsp
Choisis "JDK 6 Update 6", clique sur "Download", choisis Linux comme comme plateforme et prends plutôt le package RPM. C'est pas bien difficile. Ensuite, une fois que tu as ton RPM, utilise urpmi ou ce que tu veux d'autre pour l'installer.