È possibile creare un file JAR che richiede dipendenze esterne senza includere tali dipendenze nel file JAR?Crea file JAR senza includere dipendenze esterne
Il mio google-fu non è riuscito a darmi una risposta; tutto ciò che ho trovato mostra come includerli nel file JAR, ma non cosa mettere nel file manifest per dire "Non li ho, guarda nel classpath dell'utente". Suppongo che le dipendenze siano installate e configurate correttamente sul classpath dell'utente.
Nel mio caso, le mie dipendenze sono Apache Commons CLI e Math.
Edit: Dentro la mia file JAR, ho Main.class.
mio file manifesto appare come:
Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Main-Class: Main
mio CLASSPATH assomiglia
.;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
Se includo le dipendenze nel JAR in /lib
e aggiungi la linea Class-Path: lib/commons-math-2.0.jar lib/commons-cli-1.2.jar
al manifesto, poi lo fa lavoro.
Ho provato ad aggiungere Class-Path: commons-math-2.0.jar commons-cli-1.2.jar
al manifest senza includere i file nel JAR solo per vedere se funzionasse, ma non lo ha fatto.
ma non so dove sono, tranne che esistono nel classpath del computer dell'utente. – masher
@masher Raggruppa tutto in una zip per avere il controllo della posizione. Altrimenti, questo non fa per te. Meglio chiedere all'utente di impostare manualmente il percorso della classe in quel caso. –
@masher: se non sai dove sono, non dovresti elencarli ma documentare che l'utente deve metterli nel classpath accanto al tuo jar. – Fredrik