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

Corda样本执行runnodes步骤失败:优先调用JDK11而非已配置的Java8问题

问题原因

Corda自动生成的runnodes shell脚本内置了JDK自动探测逻辑,该逻辑不会读取当前shell通过jenv配置的JAVA_HOME变量,会优先扫描/Library/Java/JavaVirtualMachines目录下的JDK版本,匹配到更高版本的JDK11就会优先调用,和你当前shell的Java版本配置无关。你不需要卸载系统中的JDK11,按以下方案操作即可解决:

解决方案

方案1:执行时临时指定JAVA_HOME

直接在运行命令前加JAVA_HOME前缀,覆盖脚本的自动探测逻辑:

JAVA_HOME=/Users/arinea/.jenv/versions/1.8.0.301 ./build/nodes/runnodes

方案2:修改runnodes脚本固定Java路径

打开./build/nodes/runnodes文件,找到脚本中探测JAVA路径的代码段,直接将JAVA变量赋值为你的Java8路径:

JAVA="/Users/arinea/.jenv/versions/1.8.0.301/bin/java"

该方案缺点是每次重新执行deployNodes任务生成新的runnodes脚本后,都需要重新修改。

方案3:固定runnodes生成规则(推荐)

在项目根目录的build.gradle文件的deployNodes配置块中,添加生成脚本时的Java路径指定规则,后续每次生成的runnodes脚本都会默认使用你指定的Java8版本,无需反复修改。

你当前进入build/nodes目录执行java -jar runnodes.jar运行正常,就是因为该命令直接调用了当前shell环境中配置的Java8,绕开了runnodes脚本的自动JDK探测逻辑。


内容的提问来源于stack exchange,提问作者Andrei Rînea

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 19:21:01