每当在命令行中执行 jar 文件时,仅将参数传递给 main 方法。如何找到当前执行的 Jar 文件的名称?
例如:
java -jar myjar.jar arg1 arg2
如果我想获取 jar 文件“myjar.jar”的名称,我就陷入了死胡同。
我可以在代码中硬编码 Jar 文件名来处理它。但是,任何人都可以在执行 Jar 文件之前对其进行重命名。这违背了目的......
最佳答案
您可以使用资源访问来尝试查找 jar
YourApplication.class.getResource("/some-resource-in-the-jar.properties")
结果可能是这样的
jar:file:/C:/my-project/target/my-project-0.0.1-SNAPSHOT.jar!/some-resource-in-the-jar.properties
并且可以从资源中获取jar文件名。如果从目录中的类运行,则 jar 是空的。您将只有 file:/...
关于java - 查找当前执行的jar文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43798383/