superclass access check failed: class org.jb2011.lnf.beautyeye.BeautyEyeLookAndFeelWin (in unnamed module @0x34c45dca) 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 @0x34c45dca
时间: 2023-12-24 15:04:17 浏览: 262
这个错误通常是因为在使用 BeautyEye 在 Java 11 及以上版本时,Java Desktop 模块不再扩展 com.sun.java.swing.plaf.windows 包,而是将其封装在了内部。因此,你需要在启动应用程序时添加以下参数来解决这个问题:
```
--add-exports java.desktop/com.sun.java.swing.plaf.windows=ALL-UNNAMED
```
这个参数会将 Java Desktop 模块中的 com.sun.java.swing.plaf.windows 包导出到所有模块中,并且在这个包中的类也可以在所有模块中使用。
相关问题
Exception in thread "AWT-EventQueue-0" java.lang.IllegalAccessError: superclass access check failed: class org.jb2011.lnf.beautyeye.BeautyEyeLookAndFeelWin (in unnamed module @0x7b0123f1) 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 @0x7b0123f1
这个错误的意思是你的代码中调用了一个类,但是这个类的父类无法被访问。这个问题可能是由于不兼容的类库引起的。这个问题通常可以通过在命令行中添加参数 "--add-exports java.desktop/com.sun.java.swing.plaf.windows=ALL-UNNAMED" 来解决。你可以尝试在你的项目中添加这个参数来解决这个错误。
superclass access check failed: class org.jb2011.lnf.beautyeye.BeautyEyeLookAndFeelWin (in module beautyeye.lnf) cannot access class com.sun.java.swing.plaf.windows.WindowsLookAndFeel (in module java.desktop) because module java.desktop does not export co
这个问题是由于 Java 模块化系统引入的,意味着 Java 9 或更高版本中的某些类库不再公开所有的 API,只公开了一部分API。在这种情况下,需要使用 `--add-exports` 或 `--add-opens` 等参数来解决此问题。
具体而言,这个错误提示表明 `beautyeye.lnf` 模块中的 `BeautyEyeLookAndFeelWin` 类试图访问 `java.desktop` 模块中的 `WindowsLookAndFeel` 类,但 `java.desktop` 模块并没有将 `com.sun.java.swing.plaf.windows` 包导出给其他模块。
为了解决这个问题,可以使用 `--add-exports` 参数来将 `com.sun.java.swing.plaf.windows` 包导出给 `beautyeye.lnf` 模块,或使用 `--add-opens` 参数来打开 `java.desktop` 模块中的某些包,以便其他模块可以访问这些包中的类和成员。
例如,可以使用以下命令来启动应用程序,并添加所需的参数:
```
java --add-exports java.desktop/com.sun.java.swing.plaf.windows=beautyeye.lnf --module-path <module_path> -m <module>/<main_class>
```
其中,`<module_path>` 是模块路径,`<module>` 是应用程序的模块名称,`<main_class>` 是应用程序的主类名。
阅读全文