2009-09-09 80 views
2

在Linux中,JVM将工作direcory设置为等于来自用户的homefolder。 在Windows中,这是jar所在的文件夹。 如何找到罐子(来自我的应用程序)的位置以更改工作目录?Java:Howto知道jar在Linux中的位置

的Martijn

+0

你问的是哪个jar文件?您的应用程序,Java API或第三方? – 2009-09-09 14:40:58

+0

从我的应用程序的jar – 2009-09-09 14:45:55

回答

5

尝试获得与该代码的jar的路径:

path=path.substring(0, path.lastIndexOf('/')+1); 

我有同样的问题与Java:

String path = YourClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath(); 

然后你可以删除 “的* .jar” 部分游戏当我需要打开一个文件在jar是相同的目录。

双击linux中的jar没有打开文件。当然你可以打开一个命令行并将dir改为jar dir,然后从那里运行jar,但我需要双击该jar。

0

在这两种情况下,它是实际的目录。如果您从资源管理器执行,实际目录会自动设置为jar的base-dir。在linux下,主目录是GUI的实际目录。要设置目录,请编写一个简短的shell脚本,它用于设置实际目录(使用cd命令),然后执行jar(使用javaw -jar xyz.jar)。