我知道这个问题已经被问了很多,但以前的答案似乎都不适合我。
如果我让我的应用程序成为一个可执行的 Jar,有没有办法知道 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();
}
}