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

马亭

有帮助吗?

解决方案

尝试使用以下代码获取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的base-dir,如果从explorer执行它。在linux下,home-directory是GUI的实际目录。要设置目录,请编写一个简短的shell脚本,它设置实际目录(使用cd-command),然后执行jar(使用javaw -jar xyz.jar)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top