2013-10-03 47 views
1

从链接启动的应用程序的路径要获得应用程序的路径,我叫下面的Java命令:获取Linux的

System.getProperty("user.dir") 

,如果应用程序直接启动这一切正常。在Windows和OS X上,如果应用程序分别通过快捷方式和别名启动,这也可以使用。

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

+0

你想要得到哪条路? 'System.getProperty(“user.dir”)'返回你启动JVM的目录(参见[this comment](http://stackoverflow.com/questions/16239130/java-user-dir-property-what-exactly) -it-means#comment23231285_16239152)) - 它确实会默认为Windows上的目标文件的目录,但将成为Linux上符号链接的目录。 - 要获得jar或class文件的目录,您显然必须跳过更多的箍环:http://stackoverflow.com/a/320595/1114687 –

+0

我试图获取目录目标文件。换句话说,即使从快捷方式启动,我也希望通过在OS X和Windows上调用'System.getProperty(“user.dir”)'来获得等价的字符串。我不确定这是Linux的Java中的一个错误,还是只是不同。 – Thunderforge

回答

0

System.getProperty("user.dir")返回您启动JVM的目录(请参阅this comment)。当您使用快捷方式或符号链接来启动程序时,默认为Windows上的目标文件的目录,但将成为Linux上符号链接的目录。

要获得JAR-或类文件的目录,你将不得不通过几个跳铁圈:https://stackoverflow.com/a/320595/1114687

1:除非您更改快捷方式“工作目录”