Bonsoir,
J’ai fait un exemple avec mon problème, histoire de ne pas perdre de temps avec la lecture de mon code. Nous avons donc un .jar muni de son MANIFEST. Voici la structure du jar d’exemple :
test.jar
…|_META-INF
…|_MANIFEST.MF
…|_main
…|_test.class
Le source du test.class :
package main;
public class test {
public static void main(String[] args){
System.out.println("Classpath ["+System.getProperty("java.class.path")+"]");
}
}
Le MANIFEST.MF :
Manifest-Version: 1.0
Class-Path: . ..
Main-Class: main.test
A l’exécution :
C:\Documents and Settings\st23830\Desktop>java -jar test.jar
Classpath [test.jar]
Question : pourquoi ne voit-il pas tout ce qui est définit sous “Class-Path” dans le MANIFEST.MF ? Suite à mes recherches, j’ai essayé avec un " ", un “,”, un “;” comme séparateur du Class-Path, rien y fait…
Ca me rend fou, comme d’habitude surement une connerie…
Merci si vous avez la réponse à ce problème!!
PS1 : J’ai pas mal cherché, je suis tombé sur quelques personnes qui ont le même problème, à chaque fois elles ont utilisé un échapatoire (classPath en dur, intégration du dossier visé directement dans le jar, etc…)
PS2 : mon exemple est extrêmement simplifié, le vrai soucis est que ResourceBundle.getBundle(…) ne va chercher que dans le classPath, on ne peut pas lui spécifier de path. Mais je ne veux pas mettre de chemin en dur dans le classPath, ni que les fichiers recherchés par getBundle se trouvent dans le.jar. Par contre je veux que ça marche avec un jar
PS3 : ma version de java :
C:\Documents and Settings\st23830\Desktop>java -version
java version "1.6.0_11"
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing)
Meci pour votre aide !
Edité le 06/01/2009 à 13:04