怎么使用java --add-exports java.desktop/com.sun.java.swing.plaf.windows=beautyeye.lnf --module-path <module_path> -m <module>/<main_class>命令
时间: 2024-03-18 09:41:17 浏览: 29
这个命令是用来设置Java桌面程序的外观。其中,`<module_path>`是你的Java模块路径,`<module>`是你的Java模块名称,`<main_class>`是你的Java主类。
具体使用方法如下:
1. 确认你已经安装了Java SDK,并且已经设置好了环境变量。
2. 打开命令行终端。
3. 输入以下命令:
```
java --add-exports java.desktop/com.sun.java.swing.plaf.windows=beautyeye.lnf --module-path <module_path> -m <module>/<main_class>
```
4. 将`<module_path>`替换成你的Java模块路径,将`<module>`替换成你的Java模块名称,将`<main_class>`替换成你的Java主类。
5. 按下回车键,程序就会开始运行,并且外观会被设置成美化版的Windows外观。
需要注意的是,这个命令只适用于Java 9及以上版本。如果你的Java版本低于9,那么就需要使用第三方的美化库来实现相同的效果。
相关问题
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>` 是应用程序的主类名。
JAVA_OPTS="$JAVA_OPTS --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED" 这个参数怎么设置
这段代码是用于在运行 Java 应用程序时设置 JVM 参数的,具体如下:
1. `JAVA_OPTS` 是一个环境变量,用于设置 Java 虚拟机(JVM)的参数。
2. `--add-exports` 参数可以添加指定模块中的包或类到未命名模块的导出列表中。
3. `java.base/jdk.internal.ref` 表示添加 `jdk.internal.ref` 包到 `java.base` 模块中。
4. `--add-opens` 参数可以添加指定模块中的包或类到未命名模块的打开列表中。
5. `java.base/java.lang` 表示添加 `java.lang` 包到 `java.base` 模块中。
综上所述,这段代码的作用是将 `jdk.internal.ref` 包和 `java.lang` 包添加到 `java.base` 模块的导出和打开列表中,以便在运行 Java 应用程序时可以正常访问这些包中的类或方法。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)