2

很多人有这样的问题,当他们从 nautilus 启动 JAR 应用程序时,CWD(当前工作目录)设置为他们的主文件夹(而不是 JAR 所在的文件夹)。这是 Nautilus 中的一个错误,尤其是 Linux。

如果您知道一个技巧,可以更轻松地正确启动 Jar,而不是打开终端并在那里手动输入java -jar myJar.jar,请在下面发布。

谢谢


问题的简短代码示例:

File f = new File("ASimpleTextFile.txt");
System.out.println(f.getAbsolutePath());

在 Windows 中,会打印:[The Path To The Jar]/ASimpleTextFile.txt
但在 Linux 中,会打印:/home/[yourName]/ASimpleTextFile.txt

这是一个非常糟糕的主意,因为我们经常使用配置文件的相对路径。这样,它们将不会被找到,因为文件指向主文件夹。

4

1 回答 1

5

基本上,无法保证当前工作目录会发生什么。

然而,你可以做的是向 JVM 询问它找到给定类的字节码的 URL(你知道它放在哪里),并使用它来定位它“旁边”的其他资源。

请参见确定 Matlab 加载的 java 类的位置

于 2010-11-11T17:41:43.440 回答