很多人都会遇到这样的问题:当他们从 nautilus 启动 JAR 应用程序时,CWD(当前工作目录)被设置为他们的主文件夹(而不是 JAR 所在的文件夹)。这是 Nautilus 中的一个错误,尤其是 Linux 中的错误。
如果您知道一个技巧,可以更轻松地正确启动 Jar,而不是打开终端并手动键入 java -jar myJar.jar
,请将其发布在下面。
谢谢
问题的简短代码示例:
File f = new File("ASimpleTextFile.txt");
System.out.println(f.getAbsolutePath());
在 Windows 中,打印:[Jar 的路径]/ASimpleTextFile.txt
但在 Linux 中,它打印: /home/[yourName]/ASimpleTextFile.txt
这是一个非常糟糕的想法,因为我们经常使用配置文件的相对路径。这样,它们就不会被发现,因为文件指向主文件夹。
最佳答案
基本上无法保证当前工作目录的情况。
但是,您可以做的是向 JVM 询问它在哪里找到给定类的字节码(您知道它放在哪里)的 URL,并使用它来定位它“旁边”的其他资源。
关于Java + Linux : Working Directory is my home folder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4157358/