【发布时间】:2010-11-26 20:57:25
【问题描述】:
在 Linux 中,JVM 将工作目录设置为用户的主文件夹。 在 Windows 中,这是 jar 所在的文件夹。 如何找到 jar (来自我的应用程序) 的位置以更改工作目录?
马丁
【问题讨论】:
-
你问的是哪个jar文件?您的应用程序、Java API 还是第三方?
标签: java linux jar working-directory
在 Linux 中,JVM 将工作目录设置为用户的主文件夹。 在 Windows 中,这是 jar 所在的文件夹。 如何找到 jar (来自我的应用程序) 的位置以更改工作目录?
马丁
【问题讨论】:
标签: java linux jar working-directory
尝试使用以下代码获取 jar 的路径:
String path = YourClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
然后你可以删除“*.jar”部分:
path=path.substring(0, path.lastIndexOf('/')+1);
当我需要在 jar 所在的同一目录中打开文件时,我在使用 java 游戏时遇到了同样的问题。
在linux中双击jar没有打开文件。当然你可以打开命令行,将 dir 更改为 jar 目录,然后从那里运行 jar,但我需要双击 jar。
【讨论】:
在这两种情况下,它都是实际目录。如果您从资源管理器执行它,则在 Windows 下,实际目录会自动设置为 jar 的基本目录。在 linux 下,主目录是您的 GUI 的实际目录。要设置目录,请编写一个简短的 shell 脚本,设置实际目录(使用 cd 命令),然后执行 jar(使用 javaw -jar xyz.jar)。
【讨论】: