解決IDEA JDK9沒有module-info.java的問題
IDEA JDK9沒有module-info.java問題
1. 創建一個maven工程
2. 配置一下項目的編譯環境
註意:必須聲明為jdk9及其以後的版本,不然new中是沒有module-info.java這個選項
下面是使用jdk8的時候,沒有module-info.java這個選項
使用jdk10的時候,就有module-info.java這個選項
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>10</source> <target>10</target> </configuration> </plugin> </plugins> </build>
3. 一些註意事項
新建 module-info.java 文件必須選擇 java這個文件夾,也就是存放java代碼的源文件夾,選擇其他文件夾右鍵是沒有的
自己不能手動通過 new JavaClass 創建 module-info.java 文件,自己是沒法創建的,因為Java變量定義規范是:字母、數字、下劃線,$符號,下面是創建失敗的截圖
雖然IDEA不讓創建,但是我們可以自己在外面創建好一個module-info.java 文件,再復制到 java 文件夾下(不建議)
module-info.java文件
提供模塊服務接口:
module module.first { exports first.p1; // provides first.p1.Shoe // with first.p2.DoubleStar,first.p2.Warrior; provides first.p1.Shoe with first.p1.ShoeFactory;//必須實現public static provider方法 }
使用模塊服務接口:
module module.second { requires module.first; uses first.p1.Shoe; }
下面演示訪問權限
open module module.first { //module module.first { exports first.p1; //opens first.p1; }
module module.second { exports second.p1; requires transitive module.first; }
module module.third { requires module.second; }
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 詳解JDK9特性之JPMS模塊化
- 解決import包時報 Java 程序包不存在的問題
- SpringCloud Alibaba 基本開發框架搭建過程
- maven-compiler-plugin版本指定方式
- maven中配置項目的jdk版本無效的排查方式