1 In diesem Abschnitt wollen wir uns näher mit der Java-Laufzeitumgebung beschäftigen. Hierzu sehen wir uns an: • Was zu einer Laufzeitumgebung gehört? • Was ist ein Classpath? 2 Die Laufzeitumgebung besteht allein aus der Installation der JRE. Auf einem Zielsystem müssen wir daher als erstes eine Laufzeitumgebung installieren bevor wir ein Java-Anwendung ausführen können. Die Laufzeitumgebung wird auch als Java Runtime Environment (JRE) bezeichnet. Die wesentlichen Bestandteile der JRE sind: • Die Java Virtuelle Maschine zum Ausführen der Class-Files • JAVA-Runtime-Bibliotheken Die einzelnen Schritte bei der Installation sind: • Download JRE von https://www.java.com/de/download/ • Installieren bzw. entpacken Aufrufen der JVM: 3 Aufrufen können wir die Java Virtuellen Maschine (JVM) mittels dem Kommando „java“ aus einer Kommandozeile heraus. Im allgemeinen wird dabei ein sogenanntes Java-Archive-File (JAR-Datei) angegeben. Bei dem JAR File handelt es sich um ein ZIP-Datei, in der die CLASS-Files abgelegt werden. Was es mit dem CLASSPATH auf sich hat, sehen wir in der nächsten Abbildung. 3 Der Classpath ist notwendig, damit die Java-Klassen zur Laufzeit auch gefunden werden. Dies ist insbesondere dann notwendig, wenn eine Java-Anwendung andere JAR Files voraussetzt. In der Abbildung ist auf der linke Seite dargestellt, dass eine Java Anwendung in dem JAR-File App.jar ausgeliefert wird. Diese App benötigt aber Java Klassen aus einem JAR-File mit dem Namen Lib.jar. Es besteht also eine Abhängigkeit. Sehen wir uns mal ein typisches Szenario aus der Praxis an: Wie in unter (1) dargestellt, wird die Anwendung mit App.jar gestartet. Dort wird der Fehler gemeldet, dass eine Klasse nicht gefunden werden kann ( ClassNotFoundException). Der Grund ist, dass die Klassen aus dem JAR-File Lib.jar nicht gefunden werden. Um solche Probleme zu beheben, ist es notwendig alle JAR-Files, die zur Ausführung benötigt werden, der JVM mitzuteilen, damit diese die notwendigen Klassen auch findet. Dies erfolgt über den CLASSPATH. Er kann beim Start der JVM als Argument (- 4 cp , -classpath) angegeben werden. Alternativ kann man den Classpath auch in einer Umgebungsvariable CLASSPATH definieren. Die Frage ist nun, was ist nun genau der Classpath? Der Classpath enthält den Namen von JAR-Dateien oder ein Verzeichnis. Wird ein Verzeichnis angegeben, so wird angenommen, dass dort die Dateien (Class-files etc.) eines ausgepackten JAR Files liegen. 4 5 6