Bonjour, je ne comprends pas ce qui n'est pas bon dans la façon dont j'exécute une classe (sous windows XP):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
C:\Documents and Settings\Administrateur\Mes documents\Workspace\Proj>java -classpath ./ATest.jar:./JSAP-2.1.jar com.pkg.test.Atest
Exception in thread "main" java.lang.NoClassDefFoundError: com/pkg/test/Atest
 
C:\Documents and Settings\Administrateur\Mes documents\Workspace\Proj>"c:\Program Files\Java\jdk1.5.0_13\bin\jar.exe" -tf Atest.jar
META-INF/
META-INF/MANIFEST.MF
com/
com/pkg/
com/pkg/test/
com/pkg/test/Atest.class
 
C:\Documents and Settings\Administrateur\Mes documents\Workspace\Proj>
Je lui donne le jar ./Atest.jar qui contient bien la classe com.pkg.test.Atest !!! alors pourquoi ne la trouve-t-il pas ?

Si j'essaie une exécution sur le jar....

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
C:\Documents and Settings\Administrateur\Mes documents\Workspace\Proj>java -classpath ./JSAP-2.1.jar -jar Atest.jar
Exception in thread "main" java.lang.NoClassDefFoundError: com/martiansoftware/j
sap/StringParser
 
C:\Documents and Settings\Administrateur\Mes documents\Workspace\Proj>
il trouve donc la main class que j'ai défini dans le fichier manifest, par contre se foire sur le classpath puisqu'il ne trouve pas ./JSAP-2.1.jar qui se trouve pourtant bien dans le répertoire courant.

Alors la troisième solution qui consiste à ne pas définir de classpath local et d'utiliser celui défini dans le manifest.... mais il ne trouvera pas le jar JSAP malgré le manifest suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.0
Created-By: 1.5.0_11-b03 (Sun Microsystems Inc.)
Built-By: someone
Main-Class: com.pkg.test.Atest
Class-Path: ./Atest.jar:./JSAP-2.1.jar
Précisons que la variable d'environnement CLASSPATH contient ".". Si je rajoute à cette variable un dir qui contient JSAP-2.1.jar, cela ne marchera toujours pas.... pareil avec la var CLASSPATH vide d'ailleurs.

Help me....


Gal'