Suppongo che tu usi il JFileChooser per permettere all'utente di salvare/aprire i file.
Se non conosci a priori la directory in cui si trova il file Jar, dovrai ottenerlo in qualche modo. Un modo potrebbe essere quello di utilizzare il nome della classe che è in esecuzione. Supponendo che la tua classe si chiami "MiaClasse" e che il file JAR si chiami "MiaApp.jar" (dovrai, ovviamente, conoscere almeno il nome del file JAR, altrimenti si può fare lo stesso ma bisogna aggiungere della logica), con questo codice otterrai il percorso del JAR:
codice:
private String getMyPath() {
String str = MiaClasse.class.getResource("MiaClasse.class").toExternalForm();
int start = 0;
int end = str.indexOf("MiaApp.jar");
if ( str.startsWith("jar:") ) {
start = 4;
}
if (str.indexOf("file:/") >= 0) {
start += 6;
}
str = str.substring(start, end);
str = str.replaceAll("%20", " ");
return str;
}
Ora, per fare in modo che il JFileChooser si posizioni in quella directory, la cosa è banale:
codice:
JFileChooser jfc = new JFileChooser( ... );
...
jfc.setCurrentDirectory( new File(getMyPath()) );
Ciao.