Der Befehl java: Unterschied zwischen den Versionen

Aus FI-Wiki
Keine Bearbeitungszusammenfassung
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Der Befehl '''java''' ==
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 ===
== Aufgabe des Befehls java ==
* lädt die JVM   
* lädt die JVM   
* sucht die angegebene Klasse   
* sucht die angegebene Klasse   
Zeile 10: Zeile 8:
* führt den Bytecode aus   
* führt den Bytecode aus   


Ohne *.class*-Datei kann kein Java-Programm gestartet werden.
Ohne '''.class'''-Datei kann kein Java-Programm gestartet werden.


=== Syntax von java ===
== Syntax von java ==
Grundbefehl:
Grundbefehl:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Zeile 19: Zeile 17:


Wichtig:
Wichtig:
* der Klassenname wird **ohne .class** angegeben   
* der Klassenname wird '''ohne .class''' angegeben   
* die Klasse muss eine gültige main-Methode besitzen
* die Klasse muss eine gültige main-Methode besitzen


=== Beispiel ===
== Beispiel ==
Kompilieren:
Kompilieren:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Zeile 38: Zeile 36:
</syntaxhighlight>
</syntaxhighlight>


=== Programme in Unterordnern ausführen (CLASSPATH) ===
== 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 ===
== Kommandozeilenargumente übergeben ==
Start:
Start:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Zeile 66: Zeile 64:
</syntaxhighlight>
</syntaxhighlight>


=== Häufige Fehler ===
== 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 ===
== 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 (*.class*)
| kompiliert Quellcode → erzeugt Bytecode ('''.class''')
|-
|-
| '''java'''
| '''java'''
Zeile 93: Zeile 91:
|}
|}


=== Kurz gesagt ===
== Kurz gesagt ==
* '''javac''' erstellt die *.class*-Dateien   
* '''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