如何将 Java 9 '--permit-illegal-access' 标志传递给 Webstart 应用程序?
How to pass the Java 9 '--permit-illegal-access' flag to a Webstart application?
我通过将 --permit-illegal-access
标志传递给虚拟机获得了我的应用程序 运行 JRE build 9-ea+163。现在我想用 Java Webstart 启动应用程序。第一次尝试
javaws -J--permit-illegal-access <JNLP-Url>
不起作用。我得到与 module java.base does not "opens java.util" to unnamed module
和没有标志时相同的 InaccessibleObjectException
。
将 <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
抛出 IllegalAccessException
并且 -J--permit-illegal-access
也没有帮助。
P.S.: 将 env 变量 JAVA_TOOL_OPTIONS
设置为 --permit-illegal-access
可行,但不是解决方案,因为客户端不可访问。
Java Web Start 不支持 --permit-illegal-access
选项。需要打破封装的 JNLP 应用程序应使用精确选项,支持 --add-exports
和 --add-opens
。
这对我有用。将以下标志添加到 vm 参数:
java --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED -jar mySpringBootApp.jar
我通过将 --permit-illegal-access
标志传递给虚拟机获得了我的应用程序 运行 JRE build 9-ea+163。现在我想用 Java Webstart 启动应用程序。第一次尝试
javaws -J--permit-illegal-access <JNLP-Url>
不起作用。我得到与 module java.base does not "opens java.util" to unnamed module
和没有标志时相同的 InaccessibleObjectException
。
将 <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
抛出 IllegalAccessException
并且 -J--permit-illegal-access
也没有帮助。
P.S.: 将 env 变量 JAVA_TOOL_OPTIONS
设置为 --permit-illegal-access
可行,但不是解决方案,因为客户端不可访问。
Java Web Start 不支持 --permit-illegal-access
选项。需要打破封装的 JNLP 应用程序应使用精确选项,支持 --add-exports
和 --add-opens
。
这对我有用。将以下标志添加到 vm 参数:
java --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED -jar mySpringBootApp.jar