You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何让Jython脚本通过java -verbose -version获取Java17的JRE根路径

解决不同Java版本JRE根路径获取问题

问题原因

Java 17调整了java -verbose -version的输出格式,不再生成包含"Opened"的行,导致原findstr匹配规则无法获取到路径。

通用解决方案

改用java -XshowSettings:properties -version命令,该命令在Java 8/11/17及后续版本中都会输出java.home属性,直接对应JRE根路径。修改后的Jython脚本命令如下:

START SHELL COMMAND "java -XshowSettings:properties -version 2>&1 | findstr /I "java.home"" WAIT RETURNSTDOUT
  • 2>&1:将错误输出重定向到标准输出,确保捕获到所有输出内容(部分Java版本中-XshowSettings的输出会发送到错误流)
  • 提取到的java.home值即为目标JRE根路径

其他补充说明

  • 关于where javac无效的问题:javac是JDK专属工具,JRE环境中不存在该命令,因此无法通过它定位JRE路径;即使是JDK环境,Java 8的JRE位于JDK目录下的jre子文件夹,而Java 11+的JDK已内置JRE,路径逻辑不一致,所以该方法通用性极差。
  • 若依赖环境变量,可直接读取JAVA_HOME:但需注意Java 8的JAVA_HOME通常指向JDK,需拼接/jre得到JRE路径;Java 11+的JAVA_HOME直接对应运行时路径,这种方法依赖环境变量的正确配置,可靠性不如命令行提取。

内容的提问来源于stack exchange,提问作者Anna Ariffin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 16:10:13