我想在我的項目中使用java 9模塊。我想將我的數據和服務類(名爲com.test.base
的程序包)放在一個名爲(Base)的模塊中,並將其他類似於主類和GUI(名爲com.test.main
的程序包)放在另一個名爲(Main)的模塊中。如何在java中聲明模塊9
- 如何聲明簡單模塊(Base)?
- 如何用(Base)模塊的依賴聲明模塊(Main)?
我也想使用(基地)模塊與反思。
假設我的根包是
com.test
那麼我應該在這些模塊中使用什麼目錄結構?
我想在我的項目中使用java 9模塊。我想將我的數據和服務類(名爲com.test.base
的程序包)放在一個名爲(Base)的模塊中,並將其他類似於主類和GUI(名爲com.test.main
的程序包)放在另一個名爲(Main)的模塊中。如何在java中聲明模塊9
我也想使用(基地)模塊與反思。
假設我的根包是com.test
那麼我應該在這些模塊中使用什麼目錄結構?
該jigsaw quick-start是一個很好的開始與這幫助你。回答具體問題:
如何聲明簡單模塊(Base)?
module base { exports com.test.base; }
這導出
com.test.base
包:
與定義com.test.base
目錄中創建一個名爲module-info.java
類。
如何申報與(基地)模塊的依賴性模塊(主)?
同其他模塊base
一個com.test.main
目錄中名爲module-info.java
與定義類:
module main {
requires com.test.base;
}
利用導出的包。
我也想用(基地)模塊與反思。
取決於夜使用,如果API OS去除或改變上市here,那麼你可以使用--add-exports
java選項作爲JEP-261
我還建議閱讀Nicolai's answer到How to solve InaccessibleObjectException ("Unable to make {member} accessible: module {A} does not 'opens {package}' to {B}") on Java 9?一個不錯的詳細介紹有關如何在Java-9中使用反射的說明。
正確的解決方法是啓動JVM如下:
--add-opens has the following syntax: {A}/{package}={B} java --add-opens java.base/java.lang=ALL-UNNAMED
如果反射代碼是一個名爲模塊中,所有命名的可以通過它的名稱所取代。
假設我的根包com.test所以應該 我使用的目錄結構爲這些模塊?
你的目錄結構應該是有點像:
src/main/java
- com.test
- base
- module-info.java
- com/test/base/Main.java
- main
- module-info.java
- com/test/main/SimpleClass.java
你**閱讀文件**?如果是這樣,哪個部分讓你感到困惑?如果不是,爲什麼不呢? StackOverflow不是教學網站。 – Andreas