"=10="

"Unrecognized option: --add-opens" Hyperledger Besu

我想开始使用 Hyperledger Besu,按照 official documentation here 的步骤和 运行 执行以下命令:

bin\besu --help

我收到以下错误:

C:\Users\user\Desktop\besu-1.3.9>bin\besu --help
Unrecognized option: --add-opens
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

我在运行宁bin\besubin\besu -help时得到同样的结果。

我不知道问题是出在 java 的安装上,还是出在试图 运行 unvalid/unrecognised 选项 bin\besu --add-opens 的 hyperledger 上。我尝试卸载然后重新安装 java 但这并没有解决问题,这里是 java 的版本:

C:\Users\user>java -version
Picked up _JAVA_OPTIONS: -Xmx512m
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) Client VM (build 25.241-b07, mixed mode)

如有任何帮助,我们将不胜感激!

我之前没有使用过正在讨论的库的经验,但我刚刚查看了您尝试使用的库的 official docs,并且安装说明说明您需要Java 11+ 符合要求

Hyperledger Besu requires:

MacOS High Sierra 10.13 or later versions

Java 11+ to compile; earlier versions are not supported.

从您的问题来看,您的系统似乎是 运行 Java8。尝试将其提高到 java 11 并尝试再次启动二进制文件。

您 运行 的脚本将 --add-opens java.base/sun.security.provider=ALL-UNNAMED 添加到启动 Besu 的 java 命令行。正如其他人指出的那样,--add-opens 参数在 Java 9 中可用;它所做的只是防止在任何 class 使用反射访问内部 JDK class(在本例中为 Sun 安全包)时发出警告。我在没有 这个参数的情况下启动 Besu 数周没有出现任何问题,所以你可以简单地从 Besu 启动脚本中删除该参数或者 - 更好 - 至少升级到 Java Besu 期望的 11 或更高版本。根据 Oracle 的说法,这个命令行参数最终会被删除,但这是 Besu 维护者的问题,而不是你。

将环境变量中的javahome版本路径由jdk8路径改为jdk11 作为 JAVA_HOME : {jdk11目录路径}