Sto facendo un programma in java, che verrà esportato in un JAR eseguibile ed eseguito in Windows come servizio usando YAJSW, devo leggere un config.ini
file che hanno parametri importanti per l'esecuzione, ma sto impostando un percorso fisso:
Path configFile = Paths.get("D:\Folder\config.ini");
Il problema è che non conosco il percorso in cui verrà eseguito sul pc dell'utente finale. ho provato questo:
Path txtParametro = Paths.get("\config.ini");
perché il file .ini si troverà nella stessa cartella di .jar, ma non funzionerà.
Qualcuno ha idea di come posso gestire questo?
Ho pensato alle variabili di ambiente ... ma dovrei farlo manualmente, non è un'opzione.
risposte:
1 per risposta № 1È possibile impostare il file da creare in una posizione specifica in modo che il programma saprà sempre dove sarà:
File file = new File("D:\Folder\config.ini");
if (!file.exists()){
file.createNewFile();
}
Saluti, Tommaso
0 per risposta № 2
Se il file fa parte del JAR, puoi caricarlo in questo modo:
Class.getResourceAsStream ( "config.ini");
Come descritto qui:
Come posso accedere a un file di configurazione all'interno del vaso?
Se non in A JAR, per favore faccelo sapere.
0 per risposta № 3
Ho trovato una soluzione, in questo modo:
supponendo che config.ini
si trova nella stessa cartella di .jar
File pathJAR = new File(Main.class.getProtectionDomain().getCodeSource().getLocation().toURI());
mi restituisce il percorso del barattolo in esecuzione, "D:Foldername.jar"
, quindi sostituisco "nome.jar" da "config.ini".
non così bello, ma funziona.