1

要获取应用程序的路径,我调用以下 Java 命令:

System.getProperty("user.dir")

如果应用程序直接启动,这工作得很好。在 Windows 和 OS X 上,如果应用程序分别通过快捷方式和别名启动,这也有效。

但是,当应用程序通过 Linux 链接启动时(在 Linux Mint 中,通过右键单击文件并选择“制作链接”,然后将其移动到其他位置),该命令返回快捷方式的路径,而不是应用程序本身的路径。有没有办法可以获取应用程序的真实路径,而不是指向应用程序的链接路径?

4

1 回答 1

0

System.getProperty("user.dir") returns the directory you started the JVM from (see this comment). When you used a shortcut or symlink to start your program, this defaults to the directory of the destination file on Windows1, but will be the directory of the symlink on Linux.

To get the directory of the jar- or class-file, you will have to jump through a few more hoops: https://stackoverflow.com/a/320595/1114687

1: unless you change the "working directory" of the shortcut

于 2013-10-06T02:51:44.950 回答