¿Es posible crear un archivo JAR que requiera dependencias externas sin incluir esas dependencias en el archivo JAR?Crear archivo JAR sin incluir dependencias externas
Mi google-fu no me ha dado una respuesta; todo lo que he encontrado muestra cómo incluirlos en el archivo JAR, pero no qué poner en el archivo de manifiesto para decir "No los tengo, mire en el classpath del usuario". Supongo que las dependencias están correctamente instaladas y configuradas en el classpath del usuario.
En mi caso, mis dependencias son Apache Commons CLI y Math.
Editar: Dentro de mi archivo JAR, tengo Main.class.
Mi archivo de manifiesto el siguiente aspecto:
Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Main-Class: Main
Mi CLASSPATH parece
.;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 incluyo las dependencias en el frasco en /lib
y añadir la línea Class-Path: lib/commons-math-2.0.jar lib/commons-cli-1.2.jar
al manifiesto, a continuación, lo hace trabajo.
He intentado agregar Class-Path: commons-math-2.0.jar commons-cli-1.2.jar
al manifiesto sin incluir los archivos en el JAR solo para ver si eso funcionaría, pero no fue así.
pero no sé dónde están, excepto que existen en el classpath de la computadora del usuario. – masher
@masher Agrupe todo en un zip para que tenga el control de la ubicación. De lo contrario, esto no es para ti. Es mejor pedirle al usuario que configure su ruta de clase manualmente en ese caso. –
@ masher: si no sabe dónde están, no debe enumerarlos en absoluto, pero documente que el usuario debe colocarlos en el classpath al lado de su jar. – Fredrik