在 Linux 中,JVM 将工作目录设置为用户的主文件夹。在 Windows 中,这是 jar 所在的文件夹。如何找到 jar (来自我的应用程序)的位置以更改工作目录?
马汀
在 Linux 中,JVM 将工作目录设置为用户的主文件夹。在 Windows 中,这是 jar 所在的文件夹。如何找到 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 的基本目录。在 linux 下,主目录是您的 GUI 的实际目录。要设置目录,请编写一个简短的 shell 脚本,该脚本设置实际目录(使用 cd 命令),然后执行 jar(使用 javaw -jar xyz.jar)。