gpt4 book ai didi

java - 有没有办法在Java中获取应用程序目录?

转载 作者:行者123 更新时间:2023-11-29 05:54:36 25 4
gpt4 key购买 nike

这可能是不可能的,但我想我会问只是为了确定。我有一个批处理文件,它使用相对路径启动我的 java 应用程序。 IE。我有:

应用\启动.bat应用\lib*.jar

我的应用程序在应用程序目录中创建一个配置文件。我的批处理脚本使用相对路径指向 lib 目录 jar。这对我来说非常有效,因为我可以将程序移动到任何我想要的地方,它就会运行。但是现在我希望能够从命令行调用同一个应用程序,而不仅仅是从将工作目录设置为应用程序的快捷方式。问题是我希望能够从命令行上的任何目录调用我的应用程序,但现在这不起作用,因为工作目录将不同。

我知道我总是可以为工作目录向我的应用程序添加另一个参数,但我仍然必须创建一个批处理脚本,其中包含我的应用程序的硬编码路径。在 Java 中有什么办法解决这个问题,例如获取我的主 java 文件所在的目录在工作目录之上?也许有启动器应用程序?

我无法将我的应用程序打包为 jar,因为它会创建我希望与应用程序位于同一目录中的配置文件。

最佳答案

考虑只更改 start.bat 中的当前目录:

@cd /d %~dp0
java ...

这会将其更改为脚本所在的文件夹。

pushd/popd命令也可用于保留当前目录,以便在需要时调用脚本。

或者 getClass().getProtectionDomain().getCodeSource().getLocation() 可以从 java 中使用以获取 jar/类的路径。

还有配置路径系统属性的路径无关方法:

java "-DconfigDir=%~dp0" ...

关于java - 有没有办法在Java中获取应用程序目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12640511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com