我用我的Java程序创建了一个JAR文件。这段代码将在dir“Test”中打开一些文件,它与JAR文件位于同一个目录中。像这样:
/
-- program.jar
-- /Test
-- *
如果我通过终端运行:java -jar program.jar,它运行完美。但是,如果我以图形方式运行(右键单击jar文件并使用OpenJDK打开...),它将无法正常运行。就像我从另一个目录运行一样。
当我以图形方式运行JAR文件时,它是否可能从另一个目录运行?
顺便说一下,我正在使用Ubuntu。
答案 0 :(得分:2)
是的,您将获得另一个当前工作目录......将有两个解决方案:
1)通过执行此操作找到cwd:
public class Test {
public static void main(String... args) {
ClassLoader cl = Test.class.getClassLoader();
String f = cl.getResource("").getFile();
File cwd = new File(f);
if (cwd.toString().endsWith("!"))
cwd = cwd.getParentFile();
JOptionPane.showMessageDialog(null, cwd);
}
}
2)如果Test
下的文件是静态的(不经常更改),解决方案就是将它们打包到jar中。
答案 1 :(得分:0)
我不确定这是否会有所帮助,但下面是类似JAR问题的链接。