##aasche: ist ein Hinweis bezgl. 32-/64-Bit bei Java notwendig? [[Inhaltsverzeichnis(1)]] [[Bild(./java_logo.png, align=left)]] [wikipedia:Java_(Programmiersprache):Java] ist eine plattformunabhängige Programmiersprache. Alle Anwendungen, die in Java geschrieben wurden, können auf allen Plattformen genutzt werden, auf denen es Java gibt. Java wird in verschiedenen Varianten (von verschiedenen Unternehmen und Gruppen) und für alle wichtigen Betriebssysteme angeboten. = Installation = Die Installation von Java wird in einem [:Java/Installation:eigenen Artikel] behandelt. = Tipps = Tipps zu Java, z.B. zum Einstellen der zu verwendenden Java-Version, und andere Problemlösungen sind ebenfalls in einem [:Java/Tipps:separaten Artikel] zu finden. = Geschichte = Java wurde von dem Unternehmen Sun Microsystems entwickelt und vertrieben. Es stand ursprünglich 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 [wikipedia:Blackdown:] entwickelte daher eine Version von Java, die von Linux-Anwendern auf verschiedenen [wikipedia:Plattform_(Computer):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 [wikipedia:GNU-Projekt:] "GNU Classpath" als freie Implementierung der Standardklassenbibliotheken von Java geschaffen. 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 [wikipedia:Java_(Technik):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 == Für die Ausführung von Java-Programmen ist die JRE notwendig. Mit JRE bezeichnet man das [wikipedia:Java_Runtime_Environment: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 dem GNU-Projekt. Für Entwickler, die selbst Java-Programme kompilieren wollen, ist diese Version nicht ausreichend - für Endanwender schon. == JDK/SDK == JDK ist die Abkürzung von [wikipedia:Java_Development_Kit:Java Development Kit]. Dieses Entwicklungswerkzeug für Java wird von Entwicklern benötigt, die selbst Java-Programme schreiben und kompilieren möchten. Das JDK enthält auch alle Programme der JRE. Diese braucht also nicht zusätzlich installiert zu werden. Manchmal wird das JDK auch als [wikipedia:Software_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. [[Anker(JVM)]] == JVM == JVM ist die Abkürzung für [wikipedia: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 die JVM aufgerufen, die den Bytecode 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 [http://java.sun.com/products/sjwtoolkit J2ME] {en} heruntergeladen und installiert werden. = 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 Sicherheitslücken 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 [wikipedia_en:OpenJDK:] unter der [wikipedia:GNU_General_Public_License:GPL] veröffentlicht. Dadurch ist Java komplett Open Source und darf völlig frei verteilt werden. [wikipedia_en: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 Ubuntu 8.04 [:Hardy_Heron:] ist dies nun möglich und die IcedTea-Pakete wurden bis auf das Browser-Plugin komplett durch OpenJDK-Pakete ersetzt. Man darf sich dabei 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. = Links = == intern == * [:Java3D:] - Erweiterung von Java im 3D-Funktionen == extern == * [http://www.java.com/de/download/help/testvm.xml Testseite von Sun] {de} - Zum Überprüfen, ob Java korrekt installiert wurde * [http://javatester.org/version.html JavaTester.org] {en} - Java-Test und Versionsübersicht * [https://wiki.ubuntu.com/RestrictedFormats RestrictedFormats] {en} - Weitere Informationen zum Thema Java * [http://www.gnu.org/software/java/java.html Homepage von GNU Java] {en} * [http://www.blackdown.org/ Homepage von Blackdown Java für Linux] {en} * [http://www.sun.com/software/opensource/java/ Sun Java Open-Source] {en} - Homepage zur Open-Source Version von Sun Java ## * [http://www.linux-fuer-alle.de/doc_show.php?docid=190 Umgebungsvariable JAVA_HOME richtig setzen] {de} Sehr einfache Anleitung * [:LeJOS_für_Lego_NXT:] - schlanke Java VM für die Lego NXT Roboter * [http://openbook.galileocomputing.de/javainsel8/ Java lernen] Galileo , um Java zu lernen ---- # tag: Programmierung, Internet