2009-02-24 5 views
0

J'ai créé un fichier jar pour mon application. Une classe de mon application utilise la classe BouncyCastleProvider de BC jar.Impossible d'accéder au fichier BouncyCastle à partir du fichier jar de l'application

J'ai créé un dossier "lib" dans le même dossier parent où réside le fichier jar de l'application.

J'ai changé ma machine CLASSPATH pour pointer vers ce nouveau dossier lib. Mais quand je cours mon application il me donne l'exception classnotfound. Mais si je copie ce fichier jar BC dans mon jre/lib/ext, tout fonctionne correctement. Est-ce que quelqu'un peut me dire ce que je dois faire pour accéder au fichier jar BC à partir de mon répertoire lib?

Merci à l'avance, Jenish

Répondre

0

Votre fichier JAR doit avoir son fichier MANIFEST.MF mis à déclarer le classpath pour le JAR. #

Extrait du Sun Tutorial ci-dessous, dans votre cas, vous avez juste besoin de faire le point de directive Class-Path dans votre répertoire lib, probablement

Class-Path: lib/BouncyCastle.jar 

Nous voulons charger des classes dans MyUtils.jar dans le chemin de classe à utiliser dans MyJar.jar. Ces deux fichiers JAR sont dans le même répertoire.

On crée d'abord un fichier texte nommé manifest.txt avec les contenu suivant:

Class-Path: MyUtils.jar 

Warning : The text file must end with a new line or carriage return. 

La dernière ligne ne sera pas analysée correctement si elle ne se termine pas avec une nouvelle ligne ou retour chariot .

Nous créons ensuite un fichier JAR nommé MyJar.jar en entrant la commande suivante:

jar cfm MyJar.jar Manifest.txt MyPackage/*.class 

Cela crée le fichier JAR avec un manifeste avec le contenu suivant:

Manifest-Version: 1.0 
Class-Path: MyUtils.jar 
Created-By: 1.6.0 (Sun Microsystems Inc.) 

Les classes dans MyUtils.jar sont maintenant chargées dans le chemin d'accès aux classes lorsque vous exécutez MyJar.jar à .

Questions connexes