我想开始使用 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 11+
来编译
从你的问题来看,你的系统运行的是Java8。尝试将其提高到Hyperledger Besu 要求:
MacOS High Sierra 10.13 或更高版本
Java 11+ 编译;不支持早期版本。
Java 11
并尝试再次启动二进制文件。
--add-opens java.base/sun.security.provider=ALL-UNNAMED
添加到启动 Besu 的 java 命令行中。正如其他人所指出的,Java 9 中提供了
--add-opens
参数;它所做的只是防止在任何类使用反射访问内部 JDK 类(在本例中为 Sun 安全包)时发出警告。我已经启动 Besuwithout 这个参数数周了,没有出现任何问题,因此您可以简单地从 Besu 启动脚本中删除该参数,或者更好的是至少升级到 Besu 期望的 Java 11 或更高版本。根据 Oracle 的说法,这个命令行参数最终将被删除,但这是 Besu 维护者的问题,而不是你的问题。
如果使用 Tomcat 部署项目,这是一个简单的解决方案。去 Tomcat 的运行配置。找到这个参数并删除 相同的。如果您仍想使用 Java 8,则无需更改 Java 路径。
要设置 JAVA_HOME,请执行以下操作:
右键单击我的电脑并选择属性。
在“高级”选项卡上,选择“环境变量”
然后编辑JAVA_HOME指向JDK软件所在的位置,
例如,C:\Program Files\Java\jre1.8.0_341