找到当前执行的jar文件名

时间:2017-05-05 06:54:21

标签: java command-line jar parameters

每当在命令行中执行jar文件时,只将参数传递给main方法。如何找到当前执行的Jar文件的名称?

例如:

java -jar myjar.jar arg1 arg2

如果我希望获得jar文件“myjar.jar”的名称,我就会死路一条。

我可以在代码中硬编码Jar文件名来处理它。但是,任何人都可以在执行之前重命名Jar文件。这打败了目的......

1 个答案:

答案 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:/...