根据几个帖子(例如Towards the "true" definition of JAVA_HOME ),并搜索了一些可用的文档,JAVA_HOME
与JVM本身无关,并且未被它使用。
然而,有些软件需要设置它,可能与系统属性java.home
具有的值完全相同。假设java
位于PATH
中,无论如何都要将此系统属性从Windows / Unix / Mac之间可移植的JVM中挤出来 - 除了编写和编译这些少数几行之外sysout属性的代码?
我真的希望一些鲜为人知的命令行选项或其他可爱的技巧。假设jdk(而不是jre)会好的。 jps
,jstack
,jidunnothatitevenexits
的某些自引用内容怎么样?
jshell
使其变得简单。但我需要一个Java-8的解决方案,甚至可能是-7。 : - (
答案 0 :(得分:5)
Nashorn JavaScript引擎在Java 8中可用:
$ jjs
jjs> print(java.lang.System.getProperty("java.home"))
这是JavaScript,而不是Java代码。 ; - )
也适用于Java 9。可悲的是,不是在Java 7中。
<强>更新强>
我认为这适用于7,8和9。
jrunscript -e 'print(java.lang.System.getProperty("java.home"))'
更新2
允许反转引号字符的角色......
jrunscript -e "print(java.lang.System.getProperty('java.home'))"
...而且显然是Windows PowerShell所必需的。