Salve, ho creato un jar,il programma usa dei file .dat dove salva/legge degli Object!
Naturalmente i .dat vanno esterni al jar,ma non funziona!Sbaglio qualcosa sui riferimenti!
Come bisogna procedere di solito?
Salve, ho creato un jar,il programma usa dei file .dat dove salva/legge degli Object!
Naturalmente i .dat vanno esterni al jar,ma non funziona!Sbaglio qualcosa sui riferimenti!
Come bisogna procedere di solito?
Se usi un path sul file-system, o è "assoluto" o è "relativo". Mettere path assoluti "cablati" nel sorgente non è praticamente quasi mai una buona cosa. Se metti nel sorgente path relativi, sono relativi alla directory "corrente" (quella che è corrente nel momento in cui lanci java ....blabla). Quindi il tuo programma sarebbe sensibile a come/da dove lanci la applicazione.Originariamente inviato da vas212
Salve, ho creato un jar,il programma usa dei file .dat dove salva/legge degli Object!
Naturalmente i .dat vanno esterni al jar,ma non funziona!Sbaglio qualcosa sui riferimenti!
Come bisogna procedere di solito?
Altrimenti dovresti sfruttare locazioni "note", come la "home" directory dell'utente che si può rintracciare da una system-property.
Insomma .... la questione è una sola: quale path vuoi indicare e riferito/legato a che cosa.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
la radice del mio progetto è la seguente:
C:\Users\Vas212\workspace\ProgettoPoo\
i miei file .dat sono in
C:\Users\Vas212\workspace\ProgettoPoo\bin\dbms
quindi faccio
new FileInputStream("./bin/dbms/lista.dat"));
se lancio l'applicazine da eclipse funziona!
Mentre se faccio il jar e lo copio in una cartella
C:\prog
non funziona, anche se copio la cartella bin
Lo ripeto, la questione è solo: la directory "corrente".Originariamente inviato da vas212
Mentre se faccio il jar e lo copio in una cartella
C:\prog
non funziona, anche se copio la cartella bin
Quando lanci il jar, la directory corrente è C:\prog ??? Se sì non dovresti avere problemi se lì hai la bin/dbms.
Se la directory corrente non è C:\prog .... questo è il problema.
Ora, lo ripeto ancora: ti va bene che il funzionamento della tua applicazione sia "sensibile" alla directory corrente? Sì? Allora devi garantire tu che l'avvio sia sempre fatto avendo come directory corrente quella dove c'è la "bin" menzionata. Punto.
Non ti va bene? Allora devi cambiare l'approccio.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet