Eine berechtigte Frage vieler Java-Neulinge ist: „Was macht die main-Methode in Java?„. Zum einen ist die main-Methode der Haupteinstiegspunkt der Anwendung (dort, wo es losgeht) und zum anderen ist die main-Methode in der Lage externe Parameter entgegen zu nehmen. Undzwar können aus *.java-Dateien ausführbare *.jar-Dateien erzeugt werden. Solche Dateien können dann von jedem System, das über eine JRE (Java Runtime Environment) verfügt, ausgefüht werden.
Eine JAR-Datei agiert dann in etwa so wie eine EXE-Datei unter Windows. Von EXE-Dateien ist bereits bekannt, dass diese mit einem Parameter aus der Kommandozeile (oder via Verknüpfung) gestartet werden können.
Beispiel: Winamp.exe
Der Kommandozeilen-Befehl "C:\Program Files (x86)\Winamp\winamp.exe" C:\datei.mp3
würde der Datei winamp.exe den Parameter C:\datei.mp3 übergeben und Winamp dazu veranlassen, sofort beim Start mit dem Abspielen dieser Datei zu beginnen. Eine Verknüpfung dafür könnte wie folgt aussehen:
Dafür, dass Winamp den Parameter C:\datei.mp3 auswerten kann, ist die main-Methode von Winamp zuständig. Nun ist Winamp zwar nicht in Java geschrieben, doch trotzdem ist das Prinzip in Java gleich. Um das zu verdeutlichen reicht ein einfaches Code-Beispiel:
Beispiel: Winamp.java
1 2 3 4 5 6 7 8 9 10 11 12 13 | package de.bennyn.winamp; public class MainMethod { public static void main(String[] args) { String firstParameter = args[0]; System.out.print("Currently playing: "); System.out.print(firstParameter); System.out.println(""); } } |
Das String-Array args
enthält nämlich alle Werte, die wir unserer Java-Applikation von Außen übergeben. Damit wir unsere Applikation aber von Außen ansprechen können, müssen wir aus der *.java-Datei noch eine *.jar-Datei machen. In NetBeans geht das über die Funktion „Run – Clean and Build Main Project„. Danach befindet sich im „dist“-Ordner eures Projektes eine ausführbare *.jar-Datei, welche unter Windows in der Kommandozeile wie folgt aufgerufen werden kann:
1 | java -jar C:\Users\bennyn\Desktop\Java\Projekte\Winamp\dist\Winamp.jar C:\datei.mp3 |
Das Ergebnis dieses Aufrufes ist:
1 | Currently playing: C:\datei.mp3 |
Wir könnten natürlich auch mehrere Parameter übergeben. Beispiel:
1 | java -jar C:\Users\bennyn\Desktop\Java\Projekte\Winamp\dist\Winamp.jar C:\datei1.mp3 C:\datei2.mp3 C:\datei3.mp3 |
Diese wären dann im Java-Programm über args[0], args[1] und args[2] erreichbar. Die Abkürzung args
steht übrigens für „arguments“.
Wichtig:
Damit die JAR-Datei funktioniert, muss in NetBeans die richtige „Main Class“ in den „Project Properties“ angegeben werden. Diese wird beim Erstellen des Projektes zwar automatisch gesetzt, jedoch beim Umbenennen des Projektes nicht angepasst.
Screenshot: