如何在IcedTea javaws中正确配置--add-opens参数?
JNLP应用外部配置
--add-opens参数的正确方案 错误根源
你碰到的Error: --add-opens requires modules to be specified,是因为参数格式错误或IcedTea-Web对参数传递的特殊要求:--add-opens必须用等号连接模块路径和开放目标,空格分隔会导致JVM无法解析模块关系。
有效外部配置方式
1. 修正命令行执行格式
执行javaws时,-J后直接跟完整的JVM参数,确保格式正确:
javaws -J--add-opens=java.desktop/javax.swing.plaf.metal=ALL-UNNAMED my_jnlp_file.jnlp
2. 修正JNLP文件参数
在<j2se>标签的java-vm-args中,给--add-opens加上等号:
<j2se java-vm-args="--add-opens=java.desktop/javax.swing.plaf.metal=ALL-UNNAMED -Xms500m -Xmx4096m" />
3. 使用IcedTea专属环境变量
IcedTea-Web优先识别ITW_JVM_ARGS环境变量,比通用环境变量更可靠:
- Windows CMD:
set ITW_JVM_ARGS=--add-opens=java.desktop/javax.swing.plaf.metal=ALL-UNNAMED
- Linux/macOS终端:
export ITW_JVM_ARGS="--add-opens=java.desktop/javax.swing.plaf.metal=ALL-UNNAMED"
设置后直接运行javaws my_jnlp_file.jnlp即可。
关于修改itw-modularjdk.args的说明
修改该文件确实能生效,但这是全局配置,会影响所有通过此IcedTea-Web运行的JNLP应用。如果仅针对单个应用,优先用上述外部方案,避免干扰其他程序。
内容的提问来源于stack exchange,提问作者Nicolas Baumann
相关产品推荐
相关产品推荐

