【发布时间】:2013-03-04 13:26:23
【问题描述】:
我知道这个问题被问了很多,但以前的答案似乎对我没有用。
如果我让我的应用程序成为一个可执行的 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();
}
}
【问题讨论】:
-
当我将它添加到我的测试代码时,该问题的接受答案显示“rsrc:./”
-
我刚刚使用它,它对我来说完全没问题。您的 JAR 文件在哪个文件夹中?
-
我的桌面(C:/Users/CptSpike/Desktop)
-
多么有趣。您是否尝试过该线程中的任何其他建议?
标签: java jar absolute-path