Le jigsaw quick-start est un bon endroit pour commencer avec cela pour vous aider. Pour répondre aux questions spécifiques:
Comment déclarer un module simple (Base)?
Créer une classe nommée au sein module-info.java
répertoire com.test.base
avec la définition:
module base {
exports com.test.base;
}
Cette exporte le paquet com.test.base
.
Comment déclarer le module (Principal) avec la dépendance du module (base)?
Identique à l'autre module base
une classe nommée module-info.java
au sein de répertoire com.test.main
avec la définition:
module main {
requires com.test.base;
}
utilise le package exporté.
Je veux aussi utiliser le module (base) avec la réflexion.
Selon l'utilisation yoru, si les os API supprimées ou des modifications énumérées here, vous pouvez utiliser l'option --add-exports
java comme détaillé dans le JEP-261
Je voudrais aussi vous suggère de lire Nicolai's answer-How to solve InaccessibleObjectException ("Unable to make {member} accessible: module {A} does not 'opens {package}' to {B}") on Java 9? pour une belle explication sur la façon de faire usage de la réflexion dans Java-9.
le correctif correct est de lancer la machine virtuelle Java comme suit:
--add-opens has the following syntax: {A}/{package}={B}
java --add-opens java.base/java.lang=ALL-UNNAMED
Si le code réfléchissant est dans un module nommé, ALL-NOMMÉ peut être remplacé par son nom.
On suppose mon paquet racine est TestCom donc ce que la structure répertoire devrait -je utiliser pour ces modules?
Votre structure de répertoire doit être un peu comme:
src/main/java
- com.test
- base
- module-info.java
- com/test/base/Main.java
- main
- module-info.java
- com/test/main/SimpleClass.java
Avez-vous lu la documentation ** **? Si oui, quelle partie vous a troublé? Si non, pourquoi pas? StackOverflow n'est pas un site d'enseignement. – Andreas