Existe-t-il un moyen d'inclure tous les fichiers jar d'un répertoire dans le classpath ?
J'essaie java -classpath lib/*.jar :. my.package.Program
et il n'est pas capable de trouver les fichiers de classe qui sont certainement dans ces jars. Dois-je ajouter chaque fichier jar au classpath séparément ?
Si vous avez vraiment besoin de spécifier tous les fichiers .jar dynamiquement, vous pouvez utiliser des scripts shell ou [Apache Ant][1]. Il existe un projet Commons appelé [Commons Launcher][2] qui vous permet essentiellement de spécifier votre script de démarrage comme un fichier de construction Ant (si vous voyez ce que je veux dire).
Ainsi, vous pouvez spécifier quelque chose comme :
<path id="base.class.path">
<pathelement path="${resources.dir}"/>
<fileset dir="${extensions.dir}" includes="*.jar" />
<fileset dir="${lib.dir}" includes="*.jar"/>
</path>
dans votre fichier de construction de lancement, ce qui lancera votre application avec le classpath correct.
[1] : http://ant.apache.org/ [2] : http://commons.apache.org/launcher/
Vous devez les ajouter tous séparément. Alternativement, si vous avez vraiment besoin de spécifier un répertoire, vous pouvez tout désarrimer dans un seul répertoire et l'ajouter à votre classpath. Cependant, je ne recommande pas cette approche car vous risquez d'avoir des problèmes bizarres avec les versions du classpath et de ne pas pouvoir les gérer.