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

Java17下_JAVA_OPTIONS传--add-opens报错,求Nexus IQ参数传递方案

Java 17下Nexus IQ扫描器的JVM参数传递问题解决

问题原因

用_JAVA_OPTIONS传递--add-opens参数失败,是因为这个环境变量仅支持传递JVM运行时参数(比如-Xmx、-Dxxx这类),而--add-opens属于JVM的启动级模块化参数,JVM不会从_JAVA_OPTIONS中读取这类参数,所以会抛出“Unrecognized option”错误。直接执行java --add-opens ...正常,是因为该参数直接作为启动参数传给JVM,符合它的读取逻辑。

可行的参数传递方式

1. 使用JAVA_TOOL_OPTIONS环境变量

这个环境变量专门用于传递JVM启动参数,包括模块化相关选项,JVM会自动读取其内容。设置方式:

# Linux/macOS
export JAVA_TOOL_OPTIONS='--add-opens java.base/java.lang=ALL-UNNAMED'

# Windows(PowerShell)
$env:JAVA_TOOL_OPTIONS='--add-opens java.base/java.lang=ALL-UNNAMED'

设置后直接执行CI中原有的Nexus IQ启动命令即可,JVM会自动加载该参数。

2. 包装启动脚本

如果CI允许自定义执行脚本,把原启动命令包装成脚本文件,手动加入参数:

#!/bin/bash
# 替换为CI中实际的nexus-iq-cli.jar路径和原有参数
java --add-opens java.base/java.lang=ALL-UNNAMED -jar nexus-iq-cli.jar [原命令的其他参数]

之后在CI中执行这个脚本,代替原来的java -jar命令。

3. 配置Nexus IQ专属配置文件

部分Java工具支持在专属配置文件中指定JVM参数,查看Nexus IQ扫描器的部署目录,是否存在类似nexus-iq-cli.conf或jvm.options的文件,在其中添加:

--add-opens java.base/java.lang=ALL-UNNAMED

保存后重新执行扫描命令即可生效。

内容的提问来源于stack exchange,提问作者Kirill

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 21:30:27