/ / Come impostare il percorso di un file config.ini in un jar eseguibile? - java, jar, yajsw

Come impostare il percorso di un file config.ini in un jar eseguibile? - java, jar, yajsw

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.