如何将Java 9'--permit-illegal-access'标志传递给Webstart应用程序?

Mir*_*iro 8 java jnlp java-web-start java-9

通过将--permit-illegal-access标志传递给VM,我使用JRE build 9-ea + 163运行我的应用程序.现在我想用Java Webstart启动应用程序.第一次尝试

javaws -J--permit-illegal-access <JNLP-Url>
Run Code Online (Sandbox Code Playgroud)

不起作用.我得到同样InaccessibleObjectExceptionmodule java.base does not "opens java.util" to unnamed module因为没有国旗.

添加<j2se java-vm-args="--permit-illegal-access" version="9*"/>到JNLP没有帮助.

Webstart支持--permit-illegal-access旗帜吗?

我还可以在JNLP文件中指定标志吗?

顺便说一句,Java 9

javaws https://docs.oracle.com/javase/tutorialJWS/samples/deployment/NotepadJWSProject/Notepad.jnlp
Run Code Online (Sandbox Code Playgroud)

投掷IllegalAccessException,-J--permit-illegal-access也没有帮助.

PS:将env变量设置JAVA_TOOL_OPTIONS--permit-illegal-access有效,但由于无法访问客户端,因此不是解决方案.

Ala*_*man 10

Java Web Start不支持该--permit-illegal-access选项.需要打破封装的JNLP应用程序应该使用精确的选项,并且支持两者--add-exports--add-opens.

  • 按照[JDK-8172986](https://bugs.openjdk.java.net/browse/JDK-8172986)中所述的正确语法为我工作`java-vm-args =" - add-opens = java. base/java.util = ALL-UNNAMED --add-exports = java.desktop/sun.awt = ALL-UNNAMED"`.谢谢! (5认同)