“无法识别的选项:--add-opens”Hyperledger Besu

问题描述 投票:0回答:5

我想开始使用 Hyperledger Besu,请遵循此处官方文档的步骤并运行以下命令:

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\besu
bin\besu -help

我不知道问题是否出在java的安装上,或者是hyperledger besu试图运行无效/无法识别的选项

bin\besu --add-opens
。我尝试卸载然后重新安装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)

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

java windows hyperledger
5个回答
13
投票

我之前对正在讨论的库没有任何经验,但我刚刚查看了您尝试使用的库的官方文档,并且安装说明指出您需要

Java 11+
来编译

Hyperledger Besu 要求:

MacOS High Sierra 10.13更高版本

Java 11+ 编译;不支持早期版本。

从你的问题来看,你的系统运行的是Java8。尝试将其提高到

Java 11

 并尝试再次启动二进制文件。


3
投票
在环境变量中将java home版本路径从jdk8路径更改为jdk11 作为 JAVA_HOME : {jdk11目录路径}


1
投票
您正在运行的脚本将

--add-opens java.base/sun.security.provider=ALL-UNNAMED

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


0
投票
如果使用 Tomcat 部署项目,这是一个简单的解决方案。去 Tomcat 的运行配置。找到这个参数并删除 相同的。如果您仍想使用 Java 8,则无需更改 Java 路径。


-1
投票
1)您可以将 JAVA_HOME 变量更改为至少 Java 9,但官方文档说“Java 11+ 进行编译;不支持早期版本。”

要设置 JAVA_HOME,请执行以下操作: 右键单击我的电脑并选择属性。
在“高级”选项卡上,选择“环境变量”
然后编辑JAVA_HOME指向JDK软件所在的位置,
例如,C:\Program Files\Java\jre1.8.0_341

2)或者您可以在服务器运行环境部分更改本地tomcat服务器使用的JRE版本。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.