使用 java 16 编译了我的 JTOpen 应用程序后,我在 JTOpen 命令提示符中遇到了以下错误:
线程“AWT-EventQueue-0”java.lang.IllegalAccessError 中的异常:com.ibm.as400.ui.framework.java.LookAndFeelManager 类(在未命名模块 @0x6d3c0d4 中)无法访问类 com.sun.java.swing.plaf。 windows.WindowsLookAndFeel(在模块 java.desktop 中),因为模块 java.desktop 不会将 com.sun.java.swing.plaf.windows 导出到 com.ibm.as400.ui.framework.java.LookAndFeelManager.setLookAndFeel 的未命名模块 @0x6d3c0d4 (LookAndFeelManager.java:77) 在 com.ibm.as400.ui.framework.java.PanelManager.constructUI(PanelManager.java:3822) 在 com.ibm.as400.ui.framework.java.PanelManager.(PanelManager.java: 891) 在 com.ibm.as400.ui.framework.java.PanelManager.(PanelManager.java:842) 在 com.ibm.as400.ui.framework.java.PanelManager.(PanelManager.java:820) 在 com.ibm .as400.ui.util.ClButtonPanel.(ClButtonPanel.java:101) 在 com.ibm.as400.ui.util。ClCommandLineDialog.commonConstruct(ClCommandLineDialog.java:138) 在 com.ibm.as400.ui.util.ClCommandLineDialog.(ClCommandLineDialog.java:120) 在 com.ibm.as400.ui.util.CommandPrompter.showDialog(CommandPrompter.java:510) )
显然,这是由于 CommandPrompter 使用了内部 API com.sun.java.swing.plaf.windows。该问题可能可以通过在提示器类代码中使用 UIManager.getLookAndFeel() 来解决,但我不知道实现此修改的 JTOpen 版本。任何人都可以提出解决上述问题的方法吗?
莱尼