[ Zur Startseite ]


Hinweise zu Java

Stand: 15.05.2020

Achtung! Die nachfolgenden Hinweise richten sich an Personen, die Java-Programm (z.B. von dieser Homepage) nutzen möchten und keine Java-Insider sind. Aus diesem Grund sind diese Hinweise entsprechend einfach gestaltet und erheben keine Anspruch auf Vollständigkeit. Es wird auch keine Garantie für die Richtigkeit der getroffenen Aussagen übernommen. Jegliche Gewährleistung und Haftung für Schäden oder sonstige Nachteile, die aufgrund der Nutzung bzw. Befolgung dieser Hinweise entstehen, sind ausgeschlossen!


1. Technische Aspekte

Ein kompiliertes Java-Programm liegt i.d.R. als JAR-Datei vor. Solch ein JAR-File ist ein ZIP-Archiv, das die kompilierten Java-Klassen (*.class) enthält. Des Weiteren können in der JAR-Datei auch noch andere Dinge wie Bilder, Icons, Hilfedatei usw. enthalten sein.

Die kompilierten Java-Klassen haben ein Binärformat, welches nicht dem Machinencode des Computers entspricht, auf dem das Java-Programm ausgeführt werden soll. Aus diesem Grund benötigt man ein Übersetzungsprogramm, dass die Java-Klassen auf dem Computer ausführt. Dieses Übersetzungsprogramm ist die Java-Laufzeitumgebung bzw. auf Englisch Java Runtime Environment (JRE).

Wer Java-Programme entwickeln möchte, benötigt einen Compiler. Dieser ist in der JRE nicht enthalten, sondern im Java Development Kit (JDK). Das JDK enthält implizit auch das JRE, denn die im JDK enthaltenen Entwicklungswerkzeuge wie z.B. der Compiler sind nämlich selbst Java-Programme. Wer also das JDK installiert hat, braucht nicht extra noch die JRE zu installieren.

Neben der Einteilung nach JRE und JDK existieren auch noch verschiedene Java-Editionen, die für die unterschiedlichen Plattformen (z.B. Embedded-Anwendungen) entwickelt wurden. Für Desktop-Computer gibt es die Java Standard Edition (Java SE).

1.1. Java-Sicherheit

In der Vergangenheit wurde Java öfters mal mit Sicherheitsrisiken in Verbindung gebracht. Doch hier muss man differenzieren: Java wurde urspünglich entwickelt, um u.a. auch Programme in einem Web-Browser ausführen zu können. Diese speziell für den Web-Browser gedachten Java-Programme heißen Applets. Zur Ausführung von Applets muss im Web-Browser ein Java-Plugin installiert werden. Und genau hier liegt das potentielle Sicherheitsrisiko: Mit so einem Java-Plugin kann man beim Besuchen einer Web-Seite unbemerkt ein Java-Applet herunterladen und ausführen. Damit das Applet keinen Schaden anrichten kann, läuft es in einer sogenannten Sandbox, die keinen Zugriff auf das lokale Dateisystem zulässt. Doch wenn das Java-Plugin ein Sicherheitsloch enthält, durch das ein Zugriff auf das lokale Dateisystem möglich ist, dann wird aus dem potentiellen Sicherheitsrisiko ein reales. Aus diesem Grund wird es in der Tat riskant, wenn das Java-Plugin für den Web-Browser Sicherheitslücken enthält und diese nicht geschlossen werden.

Früher war das Java-Plugin in der JRE mit enthalten. In neueren Java-Versionen ist das nicht mehr der Fall. Wegen dem potentiellen Sicherheitsrisiko aber auch wegen den neuen Möglichkeiten von HTML5 verzichten aktuelle Web-Browser auf Java, d.h. sie unterstützen Java nicht mehr. Daraufhin wurde in Java 9 die Applet-Funktionalität als "deprecated" markiert und soll nicht mehr verwendet werden. Dieses Sicherheitsrisiko besteht also nicht mehr.

Die hier auf dieser Homepage zu findenen Java-Programme sind keine Applets, sondern sogenannte Standalone-Programme, die nicht in einem Web-Browser laufen. Für diese Programme gilt das oben geschilderte Sicherheitsrisiko somit prinzipiell nicht. Java-Standalone-Programme sind sicherheitstechnisch vergleichbar wie jedes andere Anwendungsprogramm, welches man auf seinem Computer verwendet.

1.2. Java-Programme starten

Java-Programme, die in Form einer JAR-Datei vorliegen, lassen sich auf vielen Systemen mit einem einfachen oder doppelten Mausklick auf die JAR-Datei starten, vorausgesetzt Java ist auf dem Rechner installiert. Funktioniert der Start per Mausklick nicht, werden die Programme üblicherweise mit folgendenden Befehlen bzw. Kommandozeilen gestartet:

System Befehl bzw. Kommandozeile
MacOS X, Linux, Unix: java -jar programm.jar
Windows: javaw.exe -jar programm.jar
Windows mit Textausgaben in der Konsole:
(Aufruf in der Eingabeaufforderung cmd.exe)
java.exe -jar programm.jar

Hinweis: programm.jar ist durch den konkreten Namen (evtl. mit vollständigem Pfad) der Java-Programmdatei zu ersetzen.

2. Rechtliche Aspekte

Achtung! Ich bein kein Jurist und dies hier ist auch keine Rechtsberatung, sondern stellt nur meine laienhafte rechtliche Sichtweise auf die Verwendung von Java dar. Meine Ausführungen können somit bei genauerer juristischer Prüfung auch falsch sein. Aus diesem Grund weise ich ausdrücklich darauf hin und übernehme keine Haftung und keine Gewähr für die nachfolgenden Aussagen!

Früher was es einfach: Benötigte man die Java Standard Edition, hat man das JRE oder das JDK von der SUN- bzw. später von der Oracle-Homepage heruntergeladen und konnte es kostenfrei nutzen (solange man die im Oracle Java enthaltenen kommerziellen Features nicht aktiviert hat). Inzwischen ist die Situation jedoch etwas komplizierter.

Der Kern von Java ist mittlerweile Open Source. Konkret unterliegen die Quellen der GNU General Public License. Um aber Java-Programme ausführen zu können, benötigt man ein compiliertes Java-Binärpaket, das man auf seinem Computer installieren kann. Solche Binärpakete werden z.B. von der Firma Oracle als Oracle JRE und Oracle JDK bzw. allgemeiner als Oracle Java SE angeboten.

Oracle hat Java gekauft und besitzt somit das Copyright daran. Zwar kann man einmal als Open Source veröffentlichte Dinge nicht wieder zurückziehen, aber Oracle kann als Copyright-Inhaber Java auch unter einer anderen Lizenz anbieten. Und genau das tut Oracle. Für die Binärpakete Oracle JRE und Oracle JDK gilt eine spezielle Lizenz, die früher die kostenlose Nutzung ermöglicht hat. Für alle ab dem 16. April 2019 erschienenen Oracle-Java-Produkte, d.h. ab Oracle Java 8 Update 211 und ab Oracle Java 11, gilt jedoch eine andere Lizenz, die die kostenlose Nutzung nur noch eingeschränkt zulässt. Wer also ein Java-Paket von Oracle verwendet, sollte die Lizenzbedingungen genau kennen und sich auch daran halten. Es kann nämlich sein, dass für den geplanten Einsatzfall die Nutzung dieses Pakets kostenpflichtig ist.

Hinweis: Java 8 und Java 11 sind Java-Versionen mit einem Langzeitsupport (Long Time Support - LTS), d.h., für diese Versionen gibt es auch nach Erscheinen der nächsten Java-Version noch Updates. Bei Java 9 und 10 ist das nicht der Fall. Da bei letzteren beiden der Oracle-Support noch vor der Änderung der Lizenz endete, fallen die Java-Versionen 9 und 10 noch unter die alte Lizenz.

Die Problematik mit der speziellen Oracle-Lizenz lässt sich umgehen, indem man Java-Binärpakete verwendet, die unter einer Open Source Lizenz veröffentlicht wurden. Und das ist z.B. beim OpenJDK der Fall.

3. OpenJDK

OpenJDK kann man herunterladen von: adoptopenjdk.net

3.1. Installation

OpenJDK kommt, je nachdem von wo es heruntergeladen wurde, nicht immer mit einem Installationsprogramm bzw. einer Installationsdatei (z.B. MSI-Datei für Windows) daher, sondern nur als Archiv- bzw. Binärdatei (z.B. als ZIP- oder TAR.GZ-Datei). Ist das der Fall, kann man OpenJDK folgendermaßen installieren (hier am Beispiel unter Windows):
  1. Anlegen eines Verzeichnisses, in das OpenJDK (und hier im Beispiel auch das damit auszuführende Java-Programm) installiert werden soll, z.B.:
    C:\Java
  2. Herunterladen der ZIP-Datei mit dem OpenJDK
  3. Entpacken der heruntergeladenen Datei in das angelegte Verzeichnis hinein,
    Danach gibt es nun ein neues Unterverzeichnis. Bei der aktuellen Version zum Zeitpunkt des Schreibens dieses Artikels war das
    C:\Java\jdk-14.0.1+7
    bzw. wenn man die JRE heruntergeladen hat:
    C:\Java\jdk-14.0.1+7-jre
  4. Starten des Java-Programms:
    Wir nehmen mal an, die Datei mit dem Java-Programm heißt programm.jar und wurde der Einfachheit halber auch in das angelegte Verzeichnis kopiert und befindet sich somit unter:
    C:\Java\programm.jar
    Dann ist folgendes zu tun:
    1. Eingabeaufforderung starten (in der Windows Suche cmd.exe eingeben)
    2. In der Eingabeaufforderung eintippen:
      C:\Java\jdk-14.0.1+7\bin\java.exe -jar C:\Java\programm.jar
    3. Enter drücken
  5. Wenn bis hier alles funktioniert hat, dann kann man auf dem Desktop eine Verknüpfung anlegen, um darüber das Java-Programm starten zu können:
    1. Über der Arbeitsfläche (Desktop) rechte Mausetaste drücken
    2. In dem erscheinenden Menü den Eintrag NeuVerknüpfung aufrufen
    3. Es öffnet sich ein Fenster. Darin in dem Eingabefeld Speicherort die o.a. Kommandozeile eingeben, allerdings mit einem Unterschied: Statt java.exe verwenden wir jetzt javaw.exe, da die Eingabeaufforderung nicht starten soll, also:
      C:\Java\jdk-14.0.1+7\bin\javaw.exe -jar C:\Java\programm.jar
    4. Schaltfläche Weiter klicken
    5. Es erscheint der nächste Dialog. Darin gibt man den Namen der Verknüpfung an. Sinnvollerweise wählt man dafür den Namen des Java-Programms.
    6. Schaltfläche Fertig klicken,
      Auf dem Desktop wurde nun die Verknüpfung angelegt.
    7. Über dieser Verknüpfung doppelt klicken,
      Das Java-Programm sollte nun starten.
    8. Wenn man ein Icon (ICO-Datei) für das Java-Programm zur Hand hat, kann man dieses für die Verknüpfung verwenden:
      • Über der Verknüpfung die rechte Maustaste drücken
      • Es öffnet sich das Kontextmenü. Darin den Eintrag Eigenschaften aufrufen
      • In dem Fenster für die Eigenschaften auf die Schaltfläche Anderes Symbol... klicken und dann die Datei mit dem Icon auswählen

4. JavaFX

In der Java Standard Edition ist AWT/Swing als Technologie für Programme mit einer grafischen Oberfläche enthalten. Diese Technologie ist inzwischen in die Jahre gekommen und kann in einigen Punkten, z.B. bei Animationen und bei der Wiedergabe von Audio- und Videomedien heute übliche Anforderungen nicht mehr erfüllen. Aus diesem Grund wurde die neue Oberflächentechnologie JavaFX von Grund auf neu entwickelt und in Java 8 integriert. Allerdings hat Oracle es aus Java 11 wieder ausgegliedert. Seit dem wird JavaFX als separates Projekt mit dem Namen OpenJFX von der Community weiterentwickelt.

4.1. OpenJFX

Im OpenJDK ist JavaFX nicht enthalten. Möchte man mit OpenJDK JavaFX-Programme ausführen, muss man OpenJFX herunterladen und installieren bzw. in OpenJDK einbinden. Ausgangspunkt dafür ist die Web-Seite openjfx.io. Dort ist alles weitere zu finden.

Achtung! Mit Java 8 compilierte JavaFX-Programme lassen sich mit OpenJDK/OpenJFX nicht direkt ausführen, sondern müssen neu compiliert und dann mit speziellen Parametern gestartet werden (siehe Anleitungen auf der o.g. Web-Seite). Die hier auf dieser Homepage zu findenden JavaFX-Programme wurden mit Java 8 compiliert und können so wie sie sind nur mit dem JRE bzw. dem JDK von Oracle Java SE 8, Oracle Java SE 9 oder Oracle Java SE 10 ausgeführt werden.

© 2020 Jens Müller