Fresco ha scritto:
quando invece faccio l'export-> runnabel jar file, e poi l'eseguo da riga di comando con Java -jar nomeprogramma.jar non trova il file di properties... Ps. il file di properties è nel main folder del progetto
"main folder" del progetto vuol dire poco/nulla. Allora: innanzitutto bisogna distinguere tra due usi di un file di un properties:
a) quando il file di properties contiene configurazioni "tecniche" per il funzionamento della applicazione, da inserire DENTRO il jar. In tal caso va trattato come "risorsa" a
sola lettura secondo lo stesso meccanismo del class loader usato dalle classi, tipicamente tramite i metodi getResource() o getResourceAsStream() di Class.
b) quando il file di properties deve stare FUORI dal jar perché deve essere aggiornabile dalla applicazione e/o modificabile "a mano" da un utente.
Se è b) la questione è poi solo quella di stabilire DOVE deve essere posizionato il file di properties, o per meglio dire: in quale relazione deve stare rispetto al jar. Ci sono diverse possibilità, il file di properties potrebbe essere rintracciabile:
1) nella directory "corrente" o relativa, sotto o sopra, ad essa
2) nella stessa directory del jar o relativa, sotto o sopra, ad essa (è un concetto più fine rispetto a 1), le due cose possono coincidere ma non è detto)
3) in una directory "notevole", es. la "home" directory dell'utente o più sotto
4) in una directory configurabile dall'utente
Aggiungo 5) (brutto ma possibile) in una directory assoluta fissa "schiantata" nel codice.