JVM 1.17下Open Web Start无法打开JNLP文件问题求助
解决JDK 17下Open Web Start启动JNLP时的IllegalAccessError问题
问题原因
该错误源于**Java 9引入的模块系统(JPMS)**的访问限制:com.jidesoft.plaf.LookAndFeelFactory所在的未命名模块,无法访问java.desktop模块中的com.sun.java.swing.plaf.windows.WindowsLookAndFeel类——Java 8无模块系统,所以不存在这个限制,程序可以正常运行。
解决方案
1. 添加JVM模块访问参数
修改JNLP文件中<j2se>标签的java-vm-args,添加模块导出/开放参数,允许未命名模块访问JDK内部的相关包:
<j2se version="1.8+" java-vm-args="-Xincgc --add-exports=java.desktop/com.sun.java.swing.plaf.windows=ALL-UNNAMED --add-opens=java.desktop/com.sun.java.swing.plaf.windows=ALL-UNNAMED" href="http://java.sun.com/products/autodl/j2se" initial-heap-size="128m" max-heap-size="512m" />
--add-exports:允许未命名模块访问指定的包--add-opens:解决可能存在的反射访问限制(Jidesoft组件可能通过反射调用内部类)
2. 升级Jidesoft组件版本
检查是否有适配Java 9+模块系统的Jidesoft新版本,新版本通常会移除对JDK内部API的依赖,改用公开API实现,这是更稳定的长期解决方案。
3. 固定使用JDK 1.8运行(临时方案)
将<j2se>的version指定为1.8*,强制程序使用Java 8运行,这是最直接的临时规避方法,但无法利用Java 17的新特性。
错误堆栈
net.sourceforge.jnlp.LaunchException: Fatal: Launch Error: Could not launch JNLP file. The application has not been initialized, for more information execute javaws/browser from the command line and send a bug report. at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:413) at net.sourceforge.jnlp.Launcher.access$300(Launcher.java:71) at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:660) Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:406) ... 2 more Caused by: java.lang.IllegalAccessError: class com.jidesoft.plaf.LookAndFeelFactory (in unnamed module @0x30d1453f) cannot access class com.sun.java.swing.plaf.windows.WindowsLookAndFeel (in module java.desktop) because module java.desktop does not export com.sun.java.swing.plaf.windows to unnamed module @0x30d1453f at com.jidesoft.plaf.LookAndFeelFactory.installJideExtension(Unknown Source) at com.jidesoft.plaf.LookAndFeelFactory.installJideExtension(Unknown Source) at com.ericsson.charging.vxmlivr.editor.core.common.CommonUtils.setLookAndFeel(CommonUtils.java:342) at com.ericsson.charging.vxmlivr.editor.workflow.client.gui.WorkflowEditorFrame.main(WorkflowEditorFrame.java:663) ... 7 more
原始JNLP文件
<?xml version="1.0" encoding="utf-8"?> <jnlp spec="1.0+" codebase="https://214.5.247.200:13202/EditorServer/"> <information> <title>Workflow Editor</title> <vendor>Ericsson</vendor> <description>Workflow Editor</description> <offline-allowed/> </information> <security> <all-permissions/> </security> <resources> <jar href="client/CXC1729877-EditorCore.jar" main="true" download="eager"/> <jar href="client/CXC1729512-WorkflowClient.jar" main="true" download="eager"/> <jar href="lib/commonlookandfeel.jar"/> <jar href="lib/JGo.jar"/> <jar href="lib/JGoLayout.jar"/> <jar href="lib/jide-action.jar"/> <jar href="lib/jide-beaninfo.jar"/> <jar href="lib/jide-common.jar"/> <jar href="lib/jide-components.jar"/> <jar href="lib/jide-dashboard.jar"/> <jar href="lib/jide-dialogs.jar"/> <jar href="lib/jide-dock.jar"/> <jar href="lib/jide-editor.jar"/> <jar href="lib/xalan-2.7.2.jar"/> <jar href="lib/jide-grids.jar"/> <jar href="lib/serializer-2.7.2.jar"/> <jar href="lib/activation.jar"/> <jar href="lib/jsr173_1.0_api.jar"/> <jar href="lib/commons-httpclient-3.1.jar"/> <jar href="lib/commons-codec-1.15.jar"/> <extension name="EditorServerLogging.jsp" href="jspFiles/com/ericsson/charging/vxmlivr/editor/server/EditorServerLogging.jsp"/> <j2se version="1.8+" java-vm-args="-Xincgc" href="http://java.sun.com/products/autodl/j2se" initial-heap-size="128m" max-heap-size="512m" /> </resources> <application-desc main-class="abc"> <argument>214.xyz</argument> <argument>13202</argument> <argument>https</argument> </application-desc> </jnlp>
内容的提问来源于stack exchange,提问作者Noob Coder
相关产品推荐
相关产品推荐

