|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2005
Messaggi: 377
|
[JAVA] Creare file bat che avvia programma jar e libreria di supporto swingx
Salve, ho creato un programma java che fa uso della libreria di swingx e ora, dopo aver creato il jar di questo programma non riesco a creare un file bat che carichi la liberia swingx e il programma che sono contenuti nella stessa cartella. Come devo scrivere il codice nel file bat?
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Se hai creato un jar per la tua applicazione, hai sicuramente creato e usato un "manifest". Metti nel manifest l'attributo Class-Path per referenziare altri jar esterni che servono alla tua applicazione.
http://java.sun.com/javase/6/docs/te...n%20Attributes
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Feb 2005
Messaggi: 377
|
Si, ma se la posizione della cartella di swingx varia sempre, non mi serve... nessuno sa come come far si che il file bat apra il jar di swingx e del programma che sono nella stessa cartella del bat?
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
basta fare non indicare la radice, cioè se sono in C:\prova\ e devo accedere alla subdirectory 123 faccio semplicemente "cd \123"
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Se una_lib.jar sta nella stessa directory di tua_app.jar, allora metti nel manifest: Class-Path: una_lib.jar Se una_lib.jar sta nella directory "libs" che si trova nella directory dove c'è tua_app.jar, allora metti nel manifest: Class-Path: libs/una_lib.jar E così via .... Se invece "pretendi" di poter usare altre librerie dovunque siano state messe (quindi slegate dalla tua applicazione), allora è un altro paio di maniche .... Mettere un path assoluto nell'attributo Class-Path del manifest non è una buona cosa, anche se tecnicamente funziona (e devi usare il protocollo file:// perché va specificato un URL!) Se avvii il tuo jar con java -jar tua_app.jar, allora sappi che il "classpath" interno è formato solamente dal tuo jar più altri elencati nel manifest. Quindi specificare l'opzione -classpath o impostare la variabile di ambiente CLASSPATH non funziona perché sono ignorati. Dovresti mettere tu in classpath il tuo jar e gli altri necessari e quindi specificare la classe di avvio, per esempio: java -classpath path_tua_app\tua_app.jar;altro_path\una_lib.jar TuaClasseDiAvvio Più lungo e noioso (nonché specifico della piattaforma). Io il mio (modesto) consiglio te l'ho dato: posizionare le librerie in modo "relativo" al tuo jar in modo che "viaggino" sempre insieme alla tua applicazione ed usare l'attributo Class-Path del manifest. Se vuoi scegliere altre strade (e probabilmente complicarti la vita), sei libero ....
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Feb 2005
Messaggi: 377
|
Alla fine ho usato il tuo consiglio sul manifest, c'è voluto un pò per capirlo xkè eclipse mi complicava la vita
![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
credo che lo "\" non vada messo! Il comando dovrebbe essere del tipo "cd 123" altrimenti da percorso non riconosciuto.Almeno dalle prove che ho fatto al volo è cosi!
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:34.