这是这个问题的后续问题(只是作为一个简短的描述:我已经能够通过双击.jar
OS X 和 Windows 上的文件来运行 Java 程序,但不能在 Linux 上运行,因为我得到了后者文件路径问题)。
通过在 Ubuntu (12.04) 下使用 NetBeans 尝试一些事情,我发现问题似乎出在程序认为是它的工作目录的地方(我从 的输出中得出结论File.getAbsolutePath()
)。如果我在 NetBeans 中启动我的应用程序,一切正常(即使在 Ubuntu 下),并且
System.out.println(new File(".").getAbsolutePath());
给我/home/my_home/projects/VocabTrainer/.
,这是我的项目文件夹,因此是正确的。但是,如果我双击.jar
位于 中的文件,/home/my_home/projects/VocabTrainer/dist
我突然在 Ubuntu 下得到的输出仅仅是/home/my_home/.
这有问题,因为我想访问位于我的dist
dir 的子目录中的数据文件。
有谁知道这种行为的原因,以及我该如何解决这个问题?
PS:我不知道这是否需要,但这是输出java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.5) (6b24-1.11.5-0ubuntu1~12.04.1)
OpenJDK Server VM (build 20.0-b12, mixed mode)