|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2005
Città: Faenza
Messaggi: 48
|
[JAVA] Problema nell'accesso a risorse esterne al JAR
Salve a tutti,
ho un problema con una applicazione java che sto sviluppando. Vengo subito al punto: la mia applicazione è contenuta in un jar (es. myapp.jar) e per varie necessità ho bisogno che nella stessa directory in cui si trova myapp.jar venissero gestite dall'applicazione due cartelle: - logs: in cui vengono salvati i file di log generati durante l'esecuzione - config: in cui verrà creato dall'applicazione un file xml contenente la configurazione il problema è che non riesco a far si che l'applicazione "veda" ed utilizzi queste due cartelle. In particolare da prove effettuate ho visto che: - se per i file log non specifico alcun percorso questi vegono generati nella mia cartella home (lavoro su ubuntu) - se per gli stessi file specifico il percorso "logs/nomefile.log" questi non vengono creati - andando per tentativi e aggiungendo le directory logs e config nel class-path del manifest.mf non cambia nulla ovviamente.. - del file di configurazione xml poi non ne parliamo...stessi problemi Qualcuno saprebbe aiutarmi? Come posso fare in modo che un jar veda le cartelle al suo stesso livello? Grazie in anticipo a tutti!!
__________________
Homo Sapiens A Chi?! ----------------------------------- Asus A8N-SLI Deluxe + AMD Athlon64 X2 4600+ + nVidia GeForce8500GT Pci-E + 1Gb DDR + WD SATA 250Gb ----------------------------------- Find me on http://kevin83.altervista.org |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Sep 2006
Città: ~
Messaggi: 146
|
Non sono sicuro che possa aiutarti, ma se ricordo bene questo
Codice:
System.getProperty("user.dir")
Avendo questo puoi usare i path relativi ad esso.
__________________
Computers are like conditioned air: they work fine 'till you open windows.
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Oct 2005
Città: Faenza
Messaggi: 48
|
grazie thehuge, provo subito e posto i risultati!
__________________
Homo Sapiens A Chi?! ----------------------------------- Asus A8N-SLI Deluxe + AMD Athlon64 X2 4600+ + nVidia GeForce8500GT Pci-E + 1Gb DDR + WD SATA 250Gb ----------------------------------- Find me on http://kevin83.altervista.org |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Oct 2005
Città: Faenza
Messaggi: 48
|
ho provato usando quella riga di codice ma la cosa non mi ha aiutato purtroppo..
System.getProperty("user.dir") mi restituisce la directory /home/mionome come directory di lavoro corrente anche se il mio jar si trova sulla scrivania, mentre io avrei bisogno di accedere le cartelle che si trovano allo stesso livello del mio jar.. in ogni caso ti ringrazio lo stesso per il consiglio!
__________________
Homo Sapiens A Chi?! ----------------------------------- Asus A8N-SLI Deluxe + AMD Athlon64 X2 4600+ + nVidia GeForce8500GT Pci-E + 1Gb DDR + WD SATA 250Gb ----------------------------------- Find me on http://kevin83.altervista.org |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
io poco tempo fa ho creato un applicazione jar che sfruttasse dei file esterni, è bastato mettere le cartelle nella cartella del jar
__________________
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 |
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Oct 2005
Città: Faenza
Messaggi: 48
|
infatti anche io pensavo bastasse fare così ma non riesco proprio a fargliele vedere e non capisco perchè....in pratica il problema è che i file li cerca nella mia directory utente /home/username....potresti postarmi qualche dettaglio in più se ti è possibile? potrebbe essere un problema di classpath?
__________________
Homo Sapiens A Chi?! ----------------------------------- Asus A8N-SLI Deluxe + AMD Athlon64 X2 4600+ + nVidia GeForce8500GT Pci-E + 1Gb DDR + WD SATA 250Gb ----------------------------------- Find me on http://kevin83.altervista.org |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Jan 2008
Città: roma
Messaggi: 296
|
nn so come fare x vedere le cartelle , ma ze devi caricare dei file ( ad esepmio il file di log ) puoi usare ClassLoader
Codice:
URL url = ClassLoader.getSystemResource("logs/mioFileDiLog.log");
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
con uno \ solo dubito che faccia qualcosa
__________________
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 |
|
|
|
|
|
#9 |
|
Member
Iscritto dal: Sep 2006
Città: ~
Messaggi: 146
|
Il metodo di prima effettivamente restituisce la pwd (present working directory) dell'utente al momento della chiamata dell'applicazione. Quindi se al momento di dare il comando
Codice:
java -jar /path/del/file.jar Prova allora questo: Codice:
this.getClass().getProtectionDomain().getCodeSource().getLocation() Da questo togli il nome del file ed aggiungi ciò che ti serve.
__________________
Computers are like conditioned air: they work fine 'till you open windows.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:07.



















