[Java] Problème excécution fichier.jar

ixtobilly Messages postés 45 Statut Membre -  
ixtobilly Messages postés 45 Statut Membre -
Bonjour les amis !

Une nouvelle fois j'ai besoin de vous.

Je travaille sur Windows et Mon répertoire de travail est le suivant : C:\Sun\jdevstudiobase10132\jdev\mywork\Application1\Project1Pfu\classes\project1pfu>

(Mon fichier ".class" s'appelle bureau.class et est bien dans ce répertoire)

Lorsque je lance mon programme avec la commande :

java project1pfu.bureau

Mon programme s'affiche correctement. La variable d'environnement ClassPath est correctement réglée

(En effet, le code de bureau.java commence par la ligne
package project1pfu;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.IOException;

import javax.swing.BorderFactory;
import javax.swing.DefaultButtonModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

)

Je veux créer un fichier ".jar" qui va contenir ma classe excécutable, ainsi que les librairies nécessaires à son fonctionnement.

Mon but final est de déployer ce client sur un SA afin de le rendre accessible aux ordinateurs de mon réseau local via la technologie : Java Web Start

Je lance la commande :

jar cvfm project1pfu.jar MANIFEST.MF *.class C:\Sun\jdevstudiobase10132\jdev\lib\jdev-rt.jar C:\Sun\jdevstudiobase10132\jdev\extensions\oracle.jdeveloper.jgoodies.1.0.4\forms-1.0.4.jar
manifest ajoutÚ
ajout : bureau$1.class (entrÚe = 761) (sortie = 454) (40% compressÚs)
ajout : bureau$2.class (entrÚe = 761) (sortie = 456) (40% compressÚs)
ajout : bureau$3.class (entrÚe = 758) (sortie = 456) (39% compressÚs)
ajout : bureau$4.class (entrÚe = 763) (sortie = 460) (39% compressÚs)
ajout : bureau$5.class (entrÚe = 760) (sortie = 457) (39% compressÚs)
ajout : bureau$6.class (entrÚe = 759) (sortie = 452) (40% compressÚs)
ajout : bureau$7.class (entrÚe = 761) (sortie = 455) (40% compressÚs)
ajout : bureau$8.class (entrÚe = 759) (sortie = 455) (40% compressÚs)
ajout : bureau.class (entrÚe = 7668) (sortie = 3453) (54% compressÚs)
ajout : C:/Sun/jdevstudiobase10132/jdev/lib/jdev-rt.jar (entrÚe = 50955) (sortie = 47654) (6% compre
ssÚs)
ajout : C:/Sun/jdevstudiobase10132/jdev/extensions/oracle.jdeveloper.jgoodies.1.0.4/forms-1.0.4.jar
(entrÚe = 83278) (sortie = 76004) (8% compressÚs)

Ou MANIFEST.MF a le contunu suivant :

Manifest-Version: 1.0
Created-By: Willy
Main-Class: bureau
<retour chariot>

Le fichier project1pfu.jar est créé

Je voudrais ensuite l'exécuter sur la ligne de commandes:

Je lance: java -jar project1pfu.jar

Le résultat est :

Exception in thread "main" java.lang.NoClassDefFoundError: bureau (wrong name: project1pfu/bureau)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)

S'il vous plait les amis, pouvez vous m'aider à lever cette exception ?

Sinon dirigez moi vers des sites ou je pourais trouver de l'aide.
A voir également:

1 réponse

fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Tu as oublié de mettre le class-path dans le manifest et il faut aussi je crois que tu mettes tous tes .class dans le dossier du nom de ton package.
0
ixtobilly Messages postés 45 Statut Membre 4
 
J'ai modifié le Classpath comme suit dans le manifest:

Manifest-Version: 1.0
Created-By: Willy
Main-Class: bureau
ClassPath: C:\Sun\jdevstudiobase10132\jdev\lib\jdev-rt.jar C:\Sun\jdevstudiobase10132\jdev\extensions\oracle.jdeveloper.jgoodies.1.0.4\forms-1.0.4.jar

tous les ".class" sont effectivement Dans mon dossier project1pfu. (joir la commande de création du "jar" ds mon précédant message)

Le message persiste.
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Oui mais j'ai l'impression que les .class ne sont pas dans le dossier de ton package dans ton .jar. Vérifie ton .jar avec winrar pour voir s'il y a bien le dossier.
0
Utilisateur anonyme
 
Salut!

De mémoire, tu dois ajouter, dans ton MANIFEST, le nom du package à ta "main" class:

Manifest-Version: 1.0 
Created-By: Willy 
Main-Class: project1pfu/bureau 


Attention: tu ne dois pas utiliser des points pour séparer les packages mais bien des "/"

;-)
HackTrack
0
ixtobilly Messages postés 45 Statut Membre 4 > Utilisateur anonyme
 
Bonjour ! Merci pour ta réponse

J'ai apporté la modification (j'ai fait les deux tests suivants),

Manifest-Version: 1.0
Created-By: Willy
Main-Class: project1pfu/bureau
<retour chariot>


Manifest-Version: 1.0
Created-By: Willy
Main-Class: project1pfu/bureau
ClassPath: C:\Sun\jdevstudiobase10132\jdev\lib\jdev-rt.jar C:\Sun\jdevstudiobase10132\jdev\extensions\oracle.jdeveloper.jgoodies.1.0.4\forms-1.0.4.jar
<retour chariot>


et j'ai le message suivant :

Exception in thread "main" java.lang.NoClassDefFoundError: project1pfu/bureau

Message classique lorsque les librairies importées ne sont pas retrouvées. (Enfin d'après ma maigre expérience)
Je pense qu'il ne retrouve pas les ".jar" qui sont empacketés avec lui.

Comment faut il écrire la ligne classpath dans le manifest pourque le programme sache qu'il doit se reférer au ".jar" dans lequel il s'exécute ?

Merci
0
ixtobilly Messages postés 45 Statut Membre 4 > Utilisateur anonyme
 
Bonjour !

J'ai même essayé le manifest suivant :

Manifest-Version: 1.0
Created-By: Willy
Main-Class: project1pfu/bureau
ClassPath: jdev-rt.jar forms-1.0.4.jar

Toujours le même message:
Exception in thread "main" java.lang.NoClassDefFoundError: project1pfu/bureau

Autre idée ???
0