Est-il possible de créer un fichier JAR qui nécessite des dépendances externes sans inclure ces dépendances dans le fichier JAR?Créer un fichier JAR sans inclure les dépendances externes
Mon google-fu n'a pas réussi à me donner une réponse; tout ce que j'ai trouvé montre comment les inclure dans le fichier JAR, mais pas ce qu'il faut mettre dans le fichier manifeste pour dire "je ne les ai pas, regardez dans le classpath de l'utilisateur". Je suppose que les dépendances sont correctement installées et configurées sur le classpath de l'utilisateur.
Dans mon cas, mes dépendances sont Apache Commons CLI et Math.
Edit: Dans mon fichier JAR, je Main.class.
Mon fichier manifeste ressemble:
Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Main-Class: Main
Mon CLASSPATH ressemble
.;C:\Program Files\Java\jre1.6.0_06\lib\ext\QTJava.zip;C:\java_lib\commons-cli-1.2.jar;C:\java_lib\commons-math-2.0\commons-math-2.0.jar
Si j'inclure les dépendances du JAR dans /lib
et ajoutez la ligne Class-Path: lib/commons-math-2.0.jar lib/commons-cli-1.2.jar
au manifeste, il ne travail.
J'ai essayé d'ajouter Class-Path: commons-math-2.0.jar commons-cli-1.2.jar
au manifeste sans inclure les fichiers dans le fichier JAR pour voir si cela fonctionnerait, mais ce n'est pas le cas.
mais je ne sais pas où ils sont, sauf qu'ils existent dans le classpath de l'ordinateur de l'utilisateur. – masher
@masher Combinez tout dans un zip afin de contrôler l'emplacement. Sinon, ce n'est pas pour vous. Mieux vaut juste demander à l'utilisateur de définir son chemin de classe manuellement dans ce cas. –
@masher: Si vous ne savez pas où ils se trouvent, vous ne devriez pas les lister du tout mais documenter que l'utilisateur doit les mettre dans le classpath à côté de votre pot. – Fredrik