Ich baue ein Jigsaw-Modul Maven.Here ist gefundenJava 9 Maven Modul nicht eine einfache Klasse in der Konsole
module org.abondar.experimental.intro {
exports org.abondar.experimental.intro;
}
Maven Compiler-Plugin set up
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<jdkToolchain>
<version>[1.8,9)</version>
</jdkToolchain>
<source>9</source>
<target>9</target>
</configuration>
</plugin>
</plugins>
</build>
Und Jar Plugin
<build>
<sourceDirectory>src/main/org.abondar.experimental.intro</sourceDirectory>
<plugins>
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>org.abondar.experimental.intro.Welcome</mainClass>
</manifest>
<manifestEntries>
<Class-Path>./lib</Class-Path>
<Module-Path>./mods</Module-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
Also in der IDE funktioniert dieser Code wie erwartet. Aber in der Konsole gibt getModule null zurück. Ich glaube, ich habe eines der Maven-Plugins falsch konfiguriert, da sich das Konsolenmodul nicht im Modulpfad befindet. Also was genau ist wr
Welchen Befehl ausgeführt haben Sie dies über die Konsole ausführen verwenden? Und wenn Sie tatsächlich in die IDE-Protokolle schauen und prüfen könnten, welcher Befehl von ihr ausgeführt wird? – nullpointer
Verwende nicht ' src/main/org.abondar.experimental.intro sourceDirectory>' .. Bewahre die Konventionen und lege den Quellcode in 'src/main/java' ... und lege die 'module-info.java' in' src/main/java' .. –
khmarbaise
@nullpointer Ich habe java -jar benutzt, was nicht korrekt war –