【问题标题】:Passing --add-opens argument to Java webstart将 --add-opens 参数传递给 Java webstart
【发布时间】:2018-09-30 08:03:32
【问题描述】:

我正在使用 Java Webstart 运行一个应用程序,但它需要在使用 Java 9+ 运行时打开一个模块:

java.lang.reflect.InaccessibleObjectException:无法使受保护的最终 java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) 抛出java.lang.ClassFormatError 可访问:模块 java.base 不会“打开 java.lang”到未命名模块 @207bb528

我需要如何修改我的 jnlp 才能使其工作?

【问题讨论】:

    标签: java java-web-start jnlp java-9


    【解决方案1】:

    With java, you would use, for example:

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

    在 JNLP 文件中,您也可以这样做,但需要将空格替换为“=”,例如:

    <j2se version="1.8.0_45+" java-vm-args="--add-opens=java.base/java.lang=ALL-UNNAMED"/>
    

    【讨论】:

    • 它仍然适用于 Java 16,我使用它来使 EasyMock 工作,但由于强大的封装性,我不确定它是否仍然适用于 Java 17。
    猜你喜欢
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    相关资源
    最近更新 更多