如何获取Java程序的名称?

And*_*ndy 11 java

我正在创建一个可以是a .exe或a 的应用程序,.jar我需要知道它是什么.有谁知道我怎么能得到用Java运行的程序的文件名/扩展名?我可以得到程序运行的路径,但我无法得到名称.

Vic*_*kin 5

将'program of name'作为通过'-D'命令行开关传递给程序的属性,就像这样

java -Dprogram.name=myApp.jar -jar myApp.jar
Run Code Online (Sandbox Code Playgroud)

像你这样在你的代码中读取它

if ("myApp.jar".equals(System.getProperty("program.name"))) {
   // perform appropriate actions...
}
Run Code Online (Sandbox Code Playgroud)


Mic*_*rdt 5

运行 JAR 文件的实际程序是java.exe.

我建议您从完全不同的角度解决问题,并让 exe 包装器设置程序查询的系统属性。或者你可以让它和 JAR 清单指定不同的主类。