每当在命令行中执行jar文件时,只将参数传递给main方法。如何找到当前执行的Jar文件的名称?
例如:
java -jar myjar.jar arg1 arg2
如果我希望获得jar文件“myjar.jar”的名称,我就会死路一条。
我可以在代码中硬编码Jar文件名来处理它。但是,任何人都可以在执行之前重命名Jar文件。这打败了目的......
答案 0 :(得分:0)
您可以使用资源访问来尝试查找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文件名。如果从dir中的类运行,则jar为空。你将只有file:/...