2

在 Linux 中,JVM 将工作目录设置为用户的主文件夹。在 Windows 中,这是 jar 所在的文件夹。如何找到 jar (来自我的应用程序)的位置以更改工作目录?

马汀

4

2 回答 2

5

尝试使用以下代码获取 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。

于 2009-09-09T14:49:43.870 回答
0

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

于 2009-09-09T14:39:27.713 回答