ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Java

./java_logo.png

Java ist eine plattformunabhängige Programmiersprache. Das bedeutet dass Anwendungen, die in Java geschrieben wurden, auf allen Plattformen genutzt werden können, auf denen es Java gibt. Implementierungen von Java werden von verschiedenen Unternehmen angeboten.

Java wurde von dem Unternehmen Sun Microsystems entwickelt und vertrieben und stand von Beginn an unter einer proprietären Lizenz. Der Quellcode war zwar immer einsehbar, es durften jedoch keinerlei Änderungen daran vorgenommen werden. Außerdem gab es zunächst keine Java-Version, die unter Linux lauffähig war.

Das Unternehmen Blackdown entwickelte daher eine Version von Java, die von Linux-Anwendern auf verschiedenen Plattformen genutzt werden konnte. Später benutzte Sun unter anderem die Blackdown-Änderungen, um seinerseits eine Linux-Variante von Java zu erstellen. Diese ist allerdings bis heute nur auf der PC-Plattform lauffähig.

Neben diesen beiden Varianten wurde vom GNU-Projekt eine freie Implementierung der Standardklassenbibliotheken von Java geschaffen (GNU Classpath). Außerdem wurde der GNU Compiler für Java entwickelt. Diese Entwicklungen werden seither von vielen Open-Source Anwendern gegenüber den SUN-Varianten bevorzugt, da sie unter der GPL stehen. Im November 2006 gab Sun jedoch bekannt, sein "Original-Java" zukünftig ebenfalls unter der GPL zu veröffentlichen.

Begriffe

Die Begrifflichkeiten sind aufgrund der komplizierten Geschichte, aber auch wegen der verschiedenen "Ausprägungen" von Java recht kompliziert. Daher sollen hier zunächst die wichtigsten Begriffe kurz erklärt werden.

JRE

Mit JRE bezeichnet man das Java Runtime Environment (Laufzeitumgebung). Dieses sorgt dafür, dass in Java geschriebene Programme auf einer Plattform ausgeführt werden können. Ein JRE gibt es von Sun, Blackdown und GNU. Für Entwickler, die selbst Java-Programme schreiben und kompilieren wollen, ist diese Version nicht ausreichend.

JDK/SDK

Das JDK ist das Java Development Kit. Dieses Entwicklungswerkzeug für Java wird von allen Anwendern benötigt, die selbst Java-Programme schreiben und kompilieren möchten. Das JDK enthält auch die Programme der JRE vollständig. Diese braucht also nicht noch zusätzlich installiert zu werden.

Manchmal wird das JDK auch als SDK (Software Development Kit oder Standard Development Kit) bezeichnet; ein Begriff, der auch für die Entwicklungswerkzeuge anderer Sprachen benutzt wird. Ein JDK bzw. SDK für Java gibt es ebenfalls von Sun, Blackdown und als freie Version.

⚓︎

JVM

JVM ist eine Abkürzung für die Java Virtual Machine. Die JVM ist der Teil der JRE, der für die Ausführung des Programmcodes eines Java-Programms verantwortlich ist. Beim Aufruf eines Java-Programms wird also in Wirklichkeit die JVM aufgerufen, die den Code interpretiert und das Programm ablaufen lässt. JVMs für Linux werden von Sun und Blackdown angeboten.

J2ME

J2ME (Java 2 Platform, Micro Edition (J2ME) Wireless Toolkit) wird speziell für die Entwicklung von Software für Mobiltelefone verwendet. Es muss manuell unter J2ME 🇬🇧 heruntergeladen und installiert werden.

Java Versionen und Versionsnummern

Bis zur Version 1.4 wurden neue Versionen von Java sowohl von Sun als auch von Blackdown kontinuierlich hochgezählt. Dabei übernahm Blackdown immer die aktuelle Version von Sun und fügte eigene Änderungen hinzu. Auch die heute aktuell verfügbare Version von Blackdown trägt noch die Versionsnummer 1.4. Mit der Version nach Java 1.4 änderte sich auch die Bezeichnung der Versionsnummer. Von manchen wird die neue Version als 1.5 bezeichnet, von Sun selbst wurde die Versionsnummer 5 eingeführt. Daher kann es hier zu Verwirrungen kommen. Von der Version 1.5 bzw. 5 gab es bisher 13 Aktualisierungen, die Verbesserungen mitbrachten und Sicherheitsrisiken korrigierten. Heute wird diese Java-Version allgemein mit Version 5 bezeichnet. In Java 6 geschriebene Desktop-Anwendungen sehen nicht mehr typisch nach Java aus, sondern passen sich dem jeweiligem GTK-Theme an. Die Version 6 von Java gibt es aktuell nur von Sun. Sun Java 7 wurde unter dem Namen OpenJDK unter der GPL veröffentlicht. Dadurch ist Java komplett OpenSource und darf völlig frei verteilt werden. IcedTea wurde aus OpenJDK mit komplett freien Compilern hergestellt. IcedTea besteht zum größten Teil aus dem originalen Code. Einige Teile sind allerdings durch Code aus dem GNU Classpath-Projekt ersetzt, da sie nicht unter einer OpenSource-Lizenz verfügbar sind. IcedTea, welches vornehmlich von RedHat entwickelt wurde war von Anfang an nur als eine Zwischenlösung geplant bis es möglich war OpenJDK mit komplett freien Tools zu kompilieren. Ab Hardy ist dies nun möglich und die IcedTea-Pakete wurden bis auf das Browserplugin komplett durch OpenJDK-Pakete ersetzt. Man darf sich dabei auch nicht von den Versionsnummern täuschen lassen. Auch wenn OpenJDK die Version 6 besitzt und IcedTea die Version 7, sind die OpenJDK-Pakete trotzdem die aktuelleren.

Online Java-Applets für den Offline-Gebrauch herunterladen

Will man ein auf einer Webseite gefundenes Java-Applet auch offline nutzen können, ohne das dieses auf der Homepage explizit zum Download angeboten wird, hilft folgendes Vorgehen:

1. Die aufrufende Homepage lokal speichern

Die Homepage, in die das Applet eingebunden ist, wird lokal gespeichert.

2. Java-Code im Quelltext suchen

Öffne die heruntergeladene html-Datei mit einem Texteditor und finde den Code, der das Java-Applet aufruft. Dieser müsste in etwa so aussehen:

<applet archive="../../test/jarfile1.jar, jarfile2.jar" code="classfile1.class" width="340" height="80" vspace="0" hspace="20" align="RIGHT" > 

3. Die angegebenen Abhängigkeiten herunterladen

Die Dateien, die unter "archive=" und "code=" angeben sind müssen nun herunter geladen werden. Ihre Pfade sind relativ zu dem Pfad der html-Datei angegeben, in der sich der Code für das Java-Applet befindet (für die Datei "jarfile1.jar muss man also zwei Ordner nach oben und dann in den Unterordner "test" wechseln). Ermittle die Pfade der Dateien und gib diese jeweils in die Adresszeile deines Browsers ein. Da dieser .jar und .class Dateien nicht öffnen kann, werden sie dir zum Download angeboten. Speicher sie alle in dem selben Ordner mit der html-Datei.

4. Dateipfade anpassen

Nun müssen in der html-Datei noch eventuell die Dateipfade angepasst werden, da sich ja nun alle Dateien im selben Ordner befinden. Aus dem obigen Beispiel wird also

<applet archive="jarfile1.jar, jarfile2.jar" code="classfile1.class" width="340" height="80" vspace="0" hspace="20" align="RIGHT" > 

Danach wird die html-Datei gespeichert und geschlossen. Anschließend kann das Applet durch öffnen der html-Datei in einem Browser geöffnet werden.

Problemlösungen

Java WebStart

Es kann vorkommen, dass eine Java Web Start Anwendung zwar mit dem Java-Startbildschirm startet, danach aber nach langem Warten nur eine Fehlermeldung erscheint:

java.net.MalformedURLException: unknown protocol: 
....

Dieser Fehler liegt an den Proxy-Einstellungen von Java. Um den Fehler zu beheben muss man unter GNOME System → Einstellungen → Sun Java 6 Plugin Control Center öffnen und dort in den Netzwerkeinstellungen „Direkte Verbindung“ auswählen bzw. die korrekten Proxy-Einstellungen machen. Die automatische Proxy-Auswahl über den Browser funktioniert nicht.

Diese Revision wurde am 20. Juli 2009 12:23 von TheMagican erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Programmierung, Internet, Java, Übersicht