解决Unrecognized option: --add-opens=java.base/java.lang=ALL-UNNAMED问题

本文讲述了在Eclipse中部署项目时遇到的Java运行错误,特别是关于`--add-opens`选项的异常。解决方案是删除VMarguments中的此类选项,从而成功运行项目。
摘要由CSDN通过智能技术生成

问题:

eclipse部署项目运行报错如下:

Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

点击确定后在控制台显示错误爆红:Unrecognized option: --add-opens=java.base/java.lang=ALL-UNNAMED

解决方案:

右击项目->run as->run configurations->arguments

然后将VM arguments中包含--add-opens=java.base/java.lang=ALL-UNNAMED等类似的--add-opens=java.XXXXX全部删除,最后保存即可运行成功。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要删除`--add-opens`选项,您可以执行以下步骤: 1. 打开您的Java应用程序的启动脚本或命令行。 2. 查找和删除包含`--add-opens`选项的行。 3. 如果您使用的是IDE,例如Eclipse或IntelliJ IDEA,您可以在项目的运行配置中找到并删除该选项。 请注意,`--add-opens`选项是为了解决在使用Java 9或更高版本时遇到的模块化系统问题而引入的,因此如果您的应用程序依赖于模块化系统,则删除该选项可能会导致应用程序无法正常运行。 ### 回答2: 要删除--add-opens可以按照以下步骤进行操作: 1. 打开命令提示符或终端窗口。 2. 输入以下命令以找到正在运行的Java进程: ``` jps -l ``` 3. 根据输出结果,找到正在运行的Java进程的进程号(PID)。 4. 输入以下命令以查看Java进程的详细信息: ``` jcmd <PID> VM.command_line ``` 其中,<PID>是Java进程的进程号。 5. 在输出结果中查找是否存在--add-opens参数。如果存在,则说明该参数被使用。 6. 如果确实存在--add-opens参数,可以选择两种方法之一来删除它: 方法一:重启Java进程,并在启动时不使用--add-opens参数。 方法二:使用jcmd命令来重新设置Java进程的启动参数,不包括--add-opens参数。具体命令如下: ``` jcmd <PID> VM.set_command_line <新的启动参数> ``` 其中,<PID>是Java进程的进程号,<新的启动参数>是不包括--add-opens参数的Java进程启动命令。 7. 删除--add-opens参数后,Java进程将以新的启动参数重新启动,不再包含该参数。 请注意,在执行任何操作之前,请确保您了解并理解对Java进程进行更改所可能产生的影响,并确保备份重要数据。 ### 回答3: "add-opens"是Java 9及以上版本中引入的一项功能,用于解决使用反射时出现的模块访问限制问题。在某些情况下,我们可能需要删除这个"add-opens"选项。 要删除"add-opens",我们按照以下步骤进行操作: 1. 升级Java版本:首先,我们需要确保我们使用的Java版本是9或以上。如果使用的是低于Java 9的版本,则没有"add-opens"这个选项,也不需要删除它。 2. 检查代码:仔细检查我们的代码并确定是否真正需要删除"add-opens"。"add-opens"选项通常被用于解决访问限制问题,如果删除该选项可能会导致代码无法编译或出现运行时错误。因此,在删除之前,我们需要确保代码不会受到任何负面影响。 3. 重新设计代码:如果我们在之前的步骤中确定确实需要删除"add-opens",那么我们需要重新设计代码,使其不再依赖于反射访问限制。一种常用的方法是使用新的Java模块系统,将代码模块化并使用模块导出和模块访问控制来管理访问权限。 使用新的Java模块系统可以提高代码的可维护性和安全性,并使其与Java开发社区保持同步。所以,即使删除了"add-opens"选项,我们建议使用新的Java模块系统来管理代码之间的访问权限。 总之,删除"add-opens"选项需要确保我们的代码不再依赖于使用反射访问受限模块的功能。这可能需要进行代码重构或使用新的Java模块系统来重新设计代码。要删除"add-opens"选项,我们应该牢记代码的可维护性和安全性,并确保与Java开发社区保持同步。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值