Der Befehl java: Unterschied zwischen den Versionen

Aus FI-Wiki
Zeile 10: Zeile 10:
* 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 ===
Zeile 19: Zeile 19:


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



Version vom 15. Dezember 2025, 14:19 Uhr

Der Befehl java

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