我写了一个输出使用提示的程序。它目前会将最初在命令行输入的主jar
文件路径回显。
Usage: java -jar path/to/MyJar.jar <params> ...
为了完整起见,我想确保java
也被回显,因为有很多种访问java
的方式(不仅仅是单词java
,而且比规范路径/us/opt/java-1.8.0-u123/bin/java
更短)
Usage: /us/opt/java7/bin/java -jar MyJar.jar <params> ...
Usage: ./bin/java -jar MyJar.jar <params> ...
Usage: java -jar MyJar.jar <params> ...
# whatever the user typed in
我怎样才能确定使用哪个命令行调用JVM?我想要原始的命令行值,在评估符号链接之前。
我不使用System.getProperty("java.home"),因为它不尊重原始的命令行值,只是JVM的最终“规范”位置。(在命令行上使用简单的java时,像Usage: /us/opt/java-1.8.0-u123/jre/bin/java -jar ...这样的使用说明会相当冗长。)
使用纯Java代码确定java的命令行位置是否可能?(即不使用bash中的包装脚本)
getProperty("sun.java.command")
是获取MyJar.jar
路径的更简单方式,即使它并不完全跨平台。但是,这不是获取java
可执行文件的路径。如果我能得到那个答案,我就可以完成了。 :-) - 700 Software