Der Befehl java: Unterschied zwischen den Versionen
Aus FI-Wiki
Keine Bearbeitungszusammenfassung |
|||
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
Der Befehl '''java''' startet ein Java-Programm. | Der Befehl '''java''' startet ein Java-Programm. | ||
Während '''javac''' den Quellcode kompiliert, führt '''java''' den erzeugten Bytecode aus (die '''.class'''-Dateien) über die Java Virtual Machine (JVM). | Während '''javac''' den Quellcode kompiliert, führt '''java''' den erzeugten Bytecode aus (die '''.class'''-Dateien) über die Java Virtual Machine (JVM). | ||
== Aufgabe des Befehls java == | |||
* lädt die JVM | * lädt die JVM | ||
* sucht die angegebene Klasse | * sucht die angegebene Klasse | ||
| Zeile 12: | Zeile 10: | ||
Ohne '''.class'''-Datei kann kein Java-Programm gestartet werden. | Ohne '''.class'''-Datei kann kein Java-Programm gestartet werden. | ||
== Syntax von java == | |||
Grundbefehl: | Grundbefehl: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| Zeile 22: | Zeile 20: | ||
* die Klasse muss eine gültige main-Methode besitzen | * die Klasse muss eine gültige main-Methode besitzen | ||
== Beispiel == | |||
Kompilieren: | Kompilieren: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| Zeile 38: | Zeile 36: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Programme in Unterordnern ausführen (CLASSPATH) == | |||
Wenn die .class-Dateien in einem Ordner liegen: | Wenn die .class-Dateien in einem Ordner liegen: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| Zeile 54: | Zeile 52: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Kommandozeilenargumente übergeben == | |||
Start: | Start: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| Zeile 66: | Zeile 64: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Häufige Fehler == | |||
{| class="wikitable" style="width:100%; text-align:center;" | {| class="wikitable" style="width:100%; text-align:center;" | ||
! Fehlermeldung | ! Fehlermeldung | ||
| Zeile 81: | Zeile 79: | ||
|} | |} | ||
== Unterschied zwischen javac und java == | |||
{| class="wikitable" style="width:100%; text-align:center;" | {| class="wikitable" style="width:100%; text-align:center;" | ||
! Befehl | ! Befehl | ||
| Zeile 87: | Zeile 85: | ||
|- | |- | ||
| '''javac''' | | '''javac''' | ||
| kompiliert Quellcode → erzeugt Bytecode ( | | kompiliert Quellcode → erzeugt Bytecode ('''.class''') | ||
|- | |- | ||
| '''java''' | | '''java''' | ||
| Zeile 93: | Zeile 91: | ||
|} | |} | ||
== Kurz gesagt == | |||
* '''javac''' erstellt die | * '''javac''' erstellt die '''.class'''-Dateien | ||
* '''java''' führt diese Bytecode-Dateien aus | * '''java''' führt diese Bytecode-Dateien aus | ||
* der Klassenname wird ohne Endung angegeben | * der Klassenname wird ohne Endung angegeben | ||
* die main-Methode ist der Startpunkt jedes Java-Programms | * die main-Methode ist der Startpunkt jedes Java-Programms | ||
Aktuelle Version vom 12. Januar 2026, 13:29 Uhr
Der Befehl java startet ein Java-Programm. Während javac den Quellcode kompiliert, führt java den erzeugten Bytecode aus (die .class-Dateien) über die Java Virtual Machine (JVM).
Aufgabe des Befehls java
- lädt die JVM
- sucht die angegebene Klasse
- startet die main-Methode
- führt den Bytecode aus
Ohne .class-Datei kann kein Java-Programm gestartet werden.
Syntax von java
Grundbefehl:
java Klassenname
Wichtig:
- der Klassenname wird ohne .class angegeben
- die Klasse muss eine gültige main-Methode besitzen
Beispiel
Kompilieren:
javac HelloWorld.java
Ausführen:
java HelloWorld
Ausgabe:
Hello World
Programme in Unterordnern ausführen (CLASSPATH)
Wenn die .class-Dateien in einem Ordner liegen:
java -cp out HelloWorld
Mehrere Ordner (Linux/macOS):
java -cp src:lib Main
Windows:
java -cp src;lib Main
Kommandozeilenargumente übergeben
Start:
java Main 42 Hallo
Im Java-Programm:
System.out.println(args[0]); // 42
System.out.println(args[1]); // Hallo
Häufige Fehler
| Fehlermeldung | Ursache |
|---|---|
| Could not find or load main class | falscher Klassenname oder falscher Pfad |
| NoSuchMethodError: main | main-Methode fehlt oder falsige Signatur |
| ClassNotFoundException | CLASSPATH falsch gesetzt |
Unterschied zwischen javac und java
| Befehl | Aufgabe |
|---|---|
| javac | kompiliert Quellcode → erzeugt Bytecode (.class) |
| java | führt Bytecode in der JVM aus |
Kurz gesagt
- javac erstellt die .class-Dateien
- java führt diese Bytecode-Dateien aus
- der Klassenname wird ohne Endung angegeben
- die main-Methode ist der Startpunkt jedes Java-Programms
