2009-01-26 8 views

Répondre

1

La manière habituelle que tout le monde fait ceci - jusqu'ici je n'ai jamais vu un JAR faire quelque chose de différent - est de placer la classe org.foobar.MyClass dans le fichier JAR du répertoire JAR/org/foobar /. Je ne peux pas imaginer une bonne raison de faire quelque chose de différent, car cela empêcherait l'utilisation normale de ce JAR par quiconque ne fait pas des choses inhabituelles.

0

Je crois que vous pouvez accomplir cela en utilisant le fichier MANIFEST. Si je me souviens bien, vous pouvez spécifier l'emplacement d'un fichier particulier dans le pot.

-1

Pourquoi feriez-vous ce dernier? Il est plus facile de le placer dans le bon répertoire en fonction du nom du paquet, ce qui évite d'avoir à éditer le fichier MANIFEST ou d'effectuer d'autres réglages spéciaux.

0

Le nom du fichier jar doit correspondre au nom de la classe. Sauf si vous écrivez un chargeur de classe personnalisé pour faire des choses bizarres.

Vous pouvez spécifier un "répertoire" dans le fichier jar en utilisant une URL de jar. Cependant, je ne pense pas que URLClassLoader gère cela correctement (pas essayé).

Une fonctionnalité qui existe en standard consiste à ajouter d'autres fichiers jar au classpath en les spécifiant dans le manifeste.

2

Vous pouvez inclure la propriété Class-Path dans votre manifeste, en répertoriant les fichiers JAR dont dépend votre application. Les chemins seront considérés par rapport à l'emplacement de votre JAR exécutable.

Par exemple, si votre app.jar contient ce dans le MANIFEST.MF:

Class-Path: lib1.jar, lib/lib2.jar

Ensuite, la machine virtuelle Java s'attendra à trouver lib1.jar dans le même répertoire que app.jar et un sous-répertoire appelé lib contenant lib2.jar.

Questions connexes