Die einfachste Methode, damit umzugehen, ist es, sie zu ignorieren. Das ist immerhin möglich, indem man
- weiterhin Java 8 benutzt. Das wird allerdings nicht ewig funktionieren.
- Bei der Aufforderung von Eclipse, eine Modul-Datei anzulegen, dieses ablehnt.
Ignorieren ist auf Dauer keine befriedigende Lösung, also schauen wir uns den Umgang mit Modulen näher an.
Package-Pflicht
Wer eine Modul-Datei anlegt, muss seine Klassen in Packages legen müssen. In bisherigen Projekten konnte man die Packages einfach ignorieren und das default-Package - also keines - verwenden.Eine Klasse ohne Package erhält in Eclipse sofort in der ersten Zeile eine rote Markierung für einen Fehler. Die Lösung schlägt Eclipse selbst vor: Einfach den package-Befehl in die erste Zeile schreiben.
package meinpackage;Es wird Ihnen vielleicht ein etwas bezeichnender Name als meinpackage einfallen. Aber jeder Name tut es.
Anschließend wird der Name meinpackage rot unterkringelt. Eclipse erklärt, dass es das passende Verzeichnis zum Package nicht gibt und schlägt vor, die Datei zu verschieben. Bei Anklicken dieser Lösung, übernimmt Eclipse die Drecksarbeit selbst.
Nutzung von Modulen
Wenn man nun ein einfaches Swing-Programm erstellen will, wird die Import-Zeile rot unterkringelt. Eclipse schlägt nun vor, eine solche Klasse zu erzeugen. Swing-Programme benötigen vielmehr das Modul java.desktop der Java Runtime Environment.module meinmodul { requires java.desktop; }Welche Module in der JRE verfügbar sind, kann man unter Eclipse feststellen, wenn man in der Library stöbert. Direkt unter dem Projekt befindet sich ein Pseudoverzeichnis JRE System Library. Klappt man dieses auf, kann man alle verfügbaren Module in alphabethischer Reihenfolge sehen.
Falls Sie lieber eine Kommandozelenversion von java verwenden, rufen Sie den folgenden Befehl auf:
java --list-modules
Modul exportieren
Natürlich ist es auch möglich, Module zu erstellen und von anderen Projekt-Modulen zu nutzen. Letztlich ist das ja mit ein Motiv, warum man sich den Aufwand überhaupt antut. Dazu wird in der Moduldatei das zu exportierende Package hinter dem Schlüsselwort exports aufgeführt.
module meinmodul { requires java.desktop; exports meinpackage; }