Die JVM kann den von Ihnen geschriebenen Code nicht direkt ausführen. Es kann nur in Bytecode geschriebene Programme ausführen. Bytecode ist eine Low-Level-Sprache, die dem Maschinencode nahe kommt.

Für Java ist Kompilierung die Übersetzung eines in Java geschriebenen (High-Level-)Programms in dasselbe in Bytecode geschriebene Programm.

Ihr Code wird in einer .java-Datei an den Compiler übergeben. Wenn der Compiler keine Fehler im Code findet, erhalten Sie eine neue Bytecode-Datei zurück. Diese Datei hat denselben Namen, aber eine andere Erweiterung: .class . Wenn der Code Fehler enthält, meldet der Compiler, dass das Programm nicht kompiliert wurde. Dann müssen Sie jede Fehlermeldung lesen und die Fehler beheben.

Mit dem Befehl javac rufen Sie den Compiler auf, der Teil des JDK (Java Development Kit) ist. Das heißt, wenn Sie nur die JRE (Java Runtime Environment) installieren, verfügen Sie nicht über den Compiler! Sie haben nur die JVM, die nur Bytecode ausführen kann. Also installieren wir das JDK und übergeben unsere .java- Datei an den Compiler.

Nehmen wir zum Beispiel ein einfaches Programm mit einer Konsolenausgabe:


class MySolution {
   public static void main(String[] args) {
      System.out.println("Hi, command line!");
   }
}

Speichern wir diesen Code in der Datei D:/temp/MySolution.java .

Lassen Sie uns unseren Code mit dem Befehl kompilieren


D:\temp>javac MySolution.java

Wenn der Code keine Kompilierungsfehler enthält, wird eine MySolution.class -Datei im temporären Ordner angezeigt. Darüber hinaus wird die Datei MySolution.java , die Ihren Code enthält, nirgendwo hin verschoben. Es bleibt genau dort, wo es war. Aber jetzt enthält MySolution.class Bytecode und kann direkt von der JVM ausgeführt werden.

Unser Beispiel ist so einfach wie möglich, aber selbst die größten und komplexesten Projekte verwenden den Befehl javac . Daher ist es für Sie sehr nützlich zu wissen, wie es funktioniert.

Sie können mehr als eine Klasse gleichzeitig kompilieren. Angenommen, es gibt eine weitere Datei Cat.java im temporären Ordner:


D:\temp>javac MySolution.java Cat.java

oder dieses:


D:\temp>javac *.java

Nach der Kompilierung können die .class- Dateien in eine JAR- Datei gepackt werden , die bequem auf verschiedene Computer verschoben und dann dort ausgeführt werden kann. Hier ist ein Beispiel für die Erstellung einer JAR- Datei:


D:\temp>jar cvfe myjar.jar MySolution MySolution.class Cat.class

Wo:

  • jar ist der Befehl zum Erstellen von .jar- Dateien, der im JDK enthalten ist

  • cvfe sind Befehlszeilenoptionen mit der folgenden Bedeutung:

    • c – Erstellen Sie eine neue JAR -Datei

    • v – ausführliche Informationen anzeigen

    • f – gibt an, dass die Ausgabe des Tools in eine Datei ( myjar.jar ) geschrieben werden soll.

    • e – gibt den Einstiegspunkt ( MySolution ) an, also die Klasse, die die Hauptmethode enthält

  • MySolution.java Cat.class – durch Leerzeichen getrennte Namen der Dateien, die in die JAR- Datei gepackt werden.

So führen wir die resultierende JAR- Datei aus:


D:\temp>java -jar myjar.jar
Für detailliertere Informationen:
Die Javac- und Jar- Tools verfügen über eine integrierte Hilfe. Um es anzuzeigen, führen Sie Folgendes in der Befehlszeile aus:
  • javac --help
  • jar --help