Я знаю, что этот вопрос задавали много, но ни один из предыдущих ответов, похоже, не работает для меня.
Если я сделаю свое приложение исполняемым файлом Jar, есть ли способ сказать, где этот файл находится в файловой системе, когда он выполняется? Мое приложение должно знать, чтобы оно могло извлечь папку из своего jar-файла (рассматривая ее как zip-файл) в указанный каталог.
РЕДАКТИРОВАТЬ: Спасибо всем, кто внес свой вклад, но я думаю, что это тупик. Я должен буду попробовать что-то еще. Извините, что отнял у всех время. Я буду продолжать проверять этот вопрос, поэтому, если кто-нибудь взломает его, пожалуйста, ответьте: D
Для чего это стоит, вот мой тестовый код:
package jarProblem;
import java.io.File;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
public class Main {
public Main () {
ClassLoader loader = Main.class.getClassLoader();
String path = loader.getResource("jarProblem/Main.class").getPath();
File file = new File(path);
String pathToJar = file.getParentFile().getAbsolutePath();
JOptionPane.showMessageDialog(new JFrame(), new JLabel(pathToJar),"CurrentFolder", JOptionPane.PLAIN_MESSAGE);
System.exit(0);
}
public static void main (String[] args) {
new Main();
}
}
URL location = Test.class.getProtectionDomain().getCodeSource().getLocation();
возвращает что-то значимое при запуске из Eclipse, но после экспорта в виде исполняемого файла Jar возвращает rsrc:./ - person CptSpike   schedule 04.03.2013