[[Vorlage(Getestet, hardy, gutsy, feisty, dapper)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Paketquellen_freischalten: Bearbeiten von Paketquellen] [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] [:Paketinstallation_DEB: Einzelne Pakete manuell installieren] }}} [[Inhaltsverzeichnis(1)]] [[Bild(./java_logo.png, align=left)]] [wikipedia:Java_(Programmiersprache):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. [wikipedia:Implementierung: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 [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:] 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 [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 == 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 GNU. Für Entwickler, die selbst Java-Programme schreiben und kompilieren wollen, ist diese Version nicht ausreichend. == JDK/SDK == Das JDK ist das [wikipedia:Java_Development_Kit: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 [wikipedia:Software_Development_Kit: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. [[Anker(JVM)]] == JVM == JVM ist eine Abkürzung für die [wikipedia:Java_Virtual_Machine: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 [http://java.sun.com/products/sjwtoolkit J2ME] {en} heruntergeladen und installiert werden. == Java 1.4 == 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. == Java 5 == 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. == Java 6 == 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. Inzwischen existieren schon drei Updates zur Version 6. == Java 7 bzw. IcedTea == Sun Java 7 wurde unter dem Spitznamen [wikipedia_en:IcedTea:] unter der [wikipedia:GNU_General_Public_License:GPL] veröffentlicht. Dadurch ist Java komplett OpenSource und darf völlig frei verteilt werden. IcedTea wurde aus OpenJDK mit komplett freien Compilern hergestellt. [[Anker(OpenJDK)]] == OpenJDK == IcedTea, welches vornehmlich von RedHat entwickelt wurde war von Anfang an nur als eine Zwischenlösung geplant bis es möglich war [wikipedia_en: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. [[Anker(Installation)]] = Installation = Einige Programme und auch einige Internetseiten setzen Java voraus, daher wird es wahrscheinlich früher oder später nötig, ein Java-Paket zu installieren. == Hardy == === OpenJDK === Unter Hardy Heron 8.04 kann man diese neuste und freie Java Version direkt aus den Paketquellen installieren. * '''openjdk-6-jre''' (''universe'', [2]) - die Java-Laufzeitumgebung für normale Anwender * '''openjdk-6-jdk''' (''universe'', [2]) - Java Development Kit für Entwickler * '''openjdk-6-source''' (''universe'', [2]) - Quellpakete von Java (wird z.B. benötigt um JavaDoc der Standardbibliothek in Eclipse anzuzeigen (wie eine .JAR hinzufügen)) * '''openjdk-6-demo''' (''universe'', [2]) - Beispieldateien für Java (normalerweise nicht benötigt) * '''openjdk-6-doc''' (''universe'', [2]) - Dokumentation für Java (normalerweise nicht benötigt) * '''openjdk-6-jre-headless''' (''universe'', [2]) - kleinere Java-Laufzeitumgebung, welche nur in sehr speziellen Ausnahmefällen nötig ist * '''openjdk-6-jre-lib''' (''universe'', [2]) - Plattformunabhängige Java-Bibliotheken === IcedTea === * '''icedtea-gcjwebplugin''' (''universe'', [2]) - Java-Plugin für Webbrowser == Gutsy Gibbon 7.10 == === Sun Java 7 === {{{#!vorlage Warnung Viele Programme kommen noch nicht mit Java 7 zurecht. Es empfiehlt sich daher nach wie vor Java 6 zu nutzen. }}} Unter Gutsy Gibbon 7.10 kann man diese neuste Java Version direkt aus den Paketquellen installieren. * '''icedtea-java7-jre''' (''universe'', [2]) - das JRE für normale Anwender * '''icedtea-java7-plugin''' (''universe'', [2]) - Java-Plugin für Webbrowser * '''icedtea-java7-jdk''' (''universe'', [2]) - das JDK für Entwickler * '''icedtea-java7-source''' (''universe'', [2]) - Quellpakete von Java (wird z.B. benötigt um JavaDoc der Standardbibliothek in Eclipse anzuzeigen (wie eine .JAR hinzufügen)) * '''icedtea-java7-demo''' (''universe'', [2]) - Beispieldateien für Java (normalerweise nicht benötigt) * '''icedtea-java7-doc''' (''universe'', [2]) - Dokumentation für Java (normalerweise nicht benötigt) == Gutsy Gibbon 7.10 / Feisty Fawn 7.04 == === Sun Java 6 === Für Gutsy Gibbon/Feisty Fawn ist diese Java-Version von Sun in den Ubuntu-Paketquellen verfügbar. Je nach Bedarf installiert [1] man die folgenden Pakete: * '''ubuntu-restricted-extras''' (''multiverse'', [2]) - [:Metapakete:Metapaket], installiert Sun Java 6 und weitere Programme * '''sun-java6-jre''' (''multiverse'') - das JRE für normale Anwender * '''sun-java6-plugin''' (''multiverse'') - Java-Plugin für Webbrowser * '''sun-java6-jdk''' (''multiverse'') - das JDK für Entwickler * '''sun-java6-source''' (''multiverse'') - Quellpakete von Java (wird z.B. benötigt um JavaDoc der Standardbibliothek in Eclipse anzuzeigen (wie eine .JAR hinzufügen)) * '''sun-java6-demo''' (''multiverse'') - Beispieldateien für Java (normalerweise nicht benötigt) * '''sun-java6-doc''' (''multiverse'') - Dokumentation für Java (normalerweise nicht benötigt) * '''sun-java6-fonts''' (''multiverse'') - Die Schriftart Lucida (normalerweise nicht benötigt) === Sun Java 5 === Für Feisty Fawn ist die Version 5 von Sun Java in den Paketquellen verfügbar. Je nach Bedarf installiert [1] man die folgenden Pakete: * '''sun-java5-jre''' (''multiverse'', [2]) - das JRE für normale Anwender * '''sun-java5-plugin''' (''multiverse'') - Java-Plugin für Webbrowser * '''sun-java5-jdk''' (''multiverse'') - das JDK für Entwickler * '''sun-java5-source''' (''multiverse'') - Quellpakete von Java (wird z.B. benötigt um JavaDoc der Standardbibliothek in Eclipse anzuzeigen (wie eine .JAR hinzufügen)) * '''sun-java5-demo''' (''multiverse'') - Beispieldateien für Java (normalerweise nicht benötigt) * '''sun-java5-doc''' (''multiverse'') - Dokumentation für Java (normalerweise nicht benötigt) * '''sun-java5-fonts''' (''multiverse'') - Die Schriftart Lucida (normalerweise nicht benötigt) == Dapper Drake 6.06 == === Sun Java 6 === Für Dapper Drake ist die neueste Java-Version von Sun in den Backports verfügbar. Je nach Bedarf installiert [1] man die folgenden Pakete: * '''sun-java6-jre''' (''multiverse, dapper-backports'' [2]) - das JRE für normale Anwender * '''sun-java6-plugin''' (''multiverse, dapper-backports'') - Java-Plugin für Webbrowser * '''sun-java6-jdk''' (''multiverse, dapper-backports'') - das JDK für Entwickler * '''sun-java6-source''' (''multiverse, dapper-backports'') - Quellpakete von Java (wird z.B. benötigt um JavaDoc der Standardbibliothek in Eclipse anzuzeigen (wie eine .JAR hinzufügen)) * '''sun-java6-demo''' (''multiverse, dapper-backports'') - Beispieldateien für Java (normalerweise nicht benötigt) * '''sun-java6-doc''' (''multiverse, dapper-backports'') - Dokumentation für Java (normalerweise nicht benötigt) * '''sun-java6-fonts''' (''multiverse, dapper-backports'') - Die Schriftart Lucida (normalerweise nicht benötigt) === Sun Java 5 === Für Dapper Drake ist die Version 5 von Sun Java in den Paketquellen verfügbar. Je nach Bedarf installiert [1] man die folgenden Pakete: * '''sun-java5-jre''' (''multiverse'', [2]) - das JRE für normale Anwender * '''sun-java5-plugin''' (''multiverse'') - Java-Plugin für Webbrowser * '''sun-java5-jdk''' (''multiverse'') - das JDK für Entwickler * '''sun-java5-source''' (''multiverse'') - Quellpakete von Java (wird z.B. benötigt um JavaDoc der Standardbibliothek in Eclipse anzuzeigen (wie eine .JAR hinzufügen)) * '''sun-java5-demo''' (''multiverse'') - Beispieldateien für Java (normalerweise nicht benötigt) * '''sun-java5-doc''' (''multiverse'') - Dokumentation für Java (normalerweise nicht benötigt) * '''sun-java5-fonts''' (''multiverse'') - Die Schriftart Lucida (normalerweise nicht benötigt) === Blackdown Java === Für Dapper Drake steht die Version 1.4.2 zur Verfügung. Folgende Pakete können installiert werden: * '''j2re1.4''' (''multiverse'', [2]) - das JRE für normale Anwender * '''j2re1.4-mozilla-plugin''' (''multiverse'') - Java-Plugin für Webbrowser von Mozilla * '''j2sdk1.4''' (''multiverse'') - das SDK für Entwickler === GNU Java === Die Java-Implementierung des GNU-Projekts ist ebenfalls in den Paketquellen enthalten. Sie wird standardmäßig installiert. Für Dapper Drake steht die Version 1.0.56 zur Verfügung. Folgende Pakete können installiert werden: * '''java-gcj-compat''' - das GNU JRE für normale Anwender * '''gcjwebplugin''' (''universe'', [2]) - Plugin für Mozilla Browser * '''free-java-sdk''' (''universe'') - freies SDK für Entwickler (Version 1.0) == Von Sun angebotene Java-Pakete == Neben der Installation von fertigen Ubuntu-Paketen, kann man auch Java-Pakete von Sun "per Hand" installieren. Bisher funktioniert dieses Verfahren noch nicht mit der Version 6 von Java. Um Java 5 zu installieren, lädt man sich [http://java.sun.com/javase/downloads/index_jdk5.jsp Suns Java] {en} (.bin Format) herunter. Hier wählt man zwischen dem JDK oder JRE Link. Zuerst müssen einige Pakete installiert werden [1]. * '''build-essential''' * '''java-package''' (''multiverse'', [2]) * '''fakeroot''' Danach führt man diese Befehle im Terminal [3] aus: {{{#!vorlage Befehl fakeroot make-jpkg jre-1_5_0_11-linux-i586.bin sudo dpkg -i sun-j2re1.5_1.5.0+update11_i386.deb }}} Um die Installation zu testen, gibt man den Befehl {{{#!vorlage Befehl java -version }}} ein [3]. Er sollte diese Ausgabe erzeugen: {{{java version "1.5.0_11" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03) Java HotSpot(TM) Client VM (build 1.5.0_11-b03, mixed mode, sharing) }}} Sollte diese Ausgabe nicht passen, so ist vermutlich neben Suns Java noch eine weitere JVM installiert (z.B. GIJ, Sablevm, Kaffe oder Jamvm). Soll in Zukunft Suns Java als Standard verwendet werden, so muss man dies [#Versionswahl einstellen]. Die "/java-web-start.applications: Permission denied" Ausgaben können ignoriert werden, wenn das Paket erstellt wird. {{{#!vorlage Hinweis Ein paar Symlinks werden durch den Befehl nicht korrekt aktualisiert: ''rmic, rmic.1.gz, rmiregistry'' verweisen noch auf das alte SDK. Falls man RMI braucht, muss man die Links in '''/etc/alternatives''' von Hand neu anlegen: {{{sudo rm /etc/alternatives/rmic sudo ln -s /usr/lib/j2sdk1.5-sun/bin/rmic /etc/alternatives/rmic ... }}} }}} = Problembehebung = == Lizenzbedingungen akzeptieren == Für die Installation muss den Lizenzbedingungen von Sun für Java zugestimmt werden! Damit dies möglich ist, muss unter Umständen erst im Terminal [3] {{{#!vorlage Befehl sudo dpkg-reconfigure debconf }}} ausführt werden und dort ''"Dialog"'' eingestellt werden. Andernfalls wird die Installation mit einer Fehlermeldung abgebrochen, die bei einer Installation über den Adept-Manager fälschlicherweise eine beschädigte Datei als Grund angibt. Bei einer Installation im Terminal [3] erscheint die korrekte Fehlermeldung: {{{sun-dlj-v1-1 license could not be presented }}} Nach der Installation muss man noch die verwendete Java-Version neu [#Versionswahl einstellen]. Hat man die Installation schon über den [:Adept:]-Paketmanager begonnen und sieht im Fortschritt-Fenster bei einem Klick auf ''"Show Details"'' eine OK-Schaltfläche, die man nicht bestätigen kann, hilft nur ein Abbruch der Installation und die Eingabe auf der Konsole [3] {{{#!vorlage Befehl dpkg --configure -a }}} Anschließend bleibt man gleich auf der Konsole und installiert die Java-Pakete auf diese Art [1]. Nun erscheint wiederum die OK-Schaltfläche der Lizenzvereinbarung, die man jetzt problemlos über die Entertaste bestätigen kann. Weitere Java-Installationen (z.B. eine neuere Version) kann man wieder über den Paketmanager durchführen, weil die Lizenzvereinbarung als angenommen gilt und nicht mehr bestätigt werden muss. == Java wird nicht gefunden == In manchen Fällen kann es vorkommen, dass Java-Programme nach der Installation nicht mehr ausgeführt werden können. Man erhält dann im Terminal nur die Nachricht {{{bash: java: command not found }}} Dies liegt an einer fehlerhaften Verknüpfung. Um dies zu beheben, öffnet man ein Terminal [3] und legt die Verknüpfung in '''/usr/bin''' korrekt an: {{{#!vorlage Befehl cd /usr/bin sudo rm java sudo ln -s /etc/alternatives/java java }}} Danach sollte Java wieder starten. [[Anker(Link)]] == JAVA_HOME einstellen == Beschreibung, wie die Umgebungsvariablen für alle Nutzer gesetzt werden. Für Umgebungen wie z.B. Tomcat Jetty Geronimo (JSP, Servlets, JSF). J2SE JDK muss installiert sein. Zuerst muss man nachsehen, wo java bin-Ordner für javac, javadoc und co ist: {{{#!vorlage Befehl ls -la /etc/alternatives/javac }}} zum Beispiel {{{/etc/alternatives/javac -> /usr/lib/jvm/java-1.5.0-sun/bin/javac }}} Dann environment-Einstellung für alle User einstellen. Dafür die Datei '''/etc/environment''' in einem Editor mit Root-Rechten öffnen [4] und dies eintragen: {{{#Pfad zum Java SDK-Basis-Ordner - kein Slash am Ende! JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun PATH=$PATH:$JAVA_HOME/bin }}} Anschließend abmelden und neu anmelden. == Java & Beryl == Es kann vorkommen, dass grafische Java-Applikationen nicht korrekt dargestellt werden, wenn der Fenstermanager [:Beryl:] läuft. Die Applikation wird dabei zwar gestartet, jedoch wird außer einem leeren, grauen Fenster nichts angezeigt. Ruft man die selbe Java-Anwendung auf, wenn Beryl nicht läuft, so wird auch der Inhalt (Buttons, Eingabefelder, ...) einwandfrei angezeigt. Dieses Problem lässt sich für alle Java Versionen leicht lösen: === Java 6 === Für die neueste Version von Java gibt es einen einfachen Lösungsweg. Dazu öffnet man die Datei '''/etc/environment''' mithilfe eines Editors welcher Root-Rechte hat[4] und fügt am Ende der Datei die folgende Zeile hinzu: {{{AWT_TOOLKIT="MToolkit" }}} Um die Einstellung zu sofort übernehmen, kann entweder die Umgebungsvariable durch Eingabe von {{{export AWT_TOOLKIT="MToolkit" }}} sofort gesetzt werden, oder der X-Server mittels [[Vorlage(Tasten, Strg+Alt+BackSpace)]] neugestartet werden. {{{#!vorlage Hinweis Dadurch werden alle laufenden Programme beendet. }}} === andere Versionen === Das [http://wiki.beryl-project.org/wiki/Java Beryl-Wiki] {en} bietet mehr Information und Lösungswege zu diesem Thema. Sollten alle oben stehenden Lösungen, als auch die Beryl-Wiki nicht weiterhelfen, so gibt es auch andere Wikis und Foren, wo dieses Thema behandelt wird. Die [http://www.google.com/search?q=beryl+java Google-Suche] wohl ist der beste Weg dort hin. [[Anker(Plugin_aktivieren)]] == Java-Plugin für Browser aktivieren == {{{#!vorlage Hinweis Dieses Verfahren ist nur dann notwendig, wenn man Java nicht als fertiges Ubuntu-Paket (mit Browser-Plugin) installiert. }}} Damit die gewünschte Java-Version benutzt werden kann, muss ein Link zu einem entsprechenden Plugin für den verwendeten Browser gesetzt werden. Möglicherweise ist noch das Plugin einer älteren/anderen Java-Version vorhanden. Daher sollte man zunächst das Plugin-Verzeichnis des Browsers überprüfen und veraltete Links löschen. Ein Java Browser-Plugin hat immer die Endung .so (Shared Object), was bedeutet, dass dies eine Programmbibliothek ist, die sich mehrere Programme teilen können. In der Regel heißt das Java-Plugin '''libjavaplugin_oji.so'''. Je nach verwendeter Java-Version (Sun, Blackdown ...) befindet sich das Plugin an anderer Stelle im Dateisystem. Am leichtesten lässt sich der Speicherort mit dem folgenden Befehl im Terminal [3] herausfinden: {{{#!vorlage Befehl update-alternatives --list java }}} Die Ausgabe sieht dann beispielsweise so aus: {{{/usr/bin/gij-wrapper-4.1 /usr/lib/jvm/java-6-sun/jre/bin/java /usr/lib/j2se/1.4/bin/java }}} Der erste Eintrag zeigt den Pfad zum standardmäßig installierten GNU-Java. Die beiden weiteren Pfade zeigen jeweils auf die [#JVM JVM]. Pfad Nummer 2 zeigt auf die JVM von Sun Java 6 und der dritte Pfad steht für die JVM von Blackdown Java. Für den Browser wird aber nicht die JVM, sondern ein Plugin benötigt. Am einfachsten ist es, den [:Dateimanager:] zu öffnen und hier dem angegebenen Pfad zu folgen, bis man auf das Verzeichnis '''plugin''' stößt. Hier befindet sich in der Regel die o.g. Datei. Vollständige Pfade zum Plugin kann man den unten angegebenen Befehlen entnehmen. Möchte man nun eines der Plugins mit dem Browser Firefox verlinken, so muss man zunächst den korrekten Pfad heraussuchen und anschließend mit dem Befehl [:ln:] im Terminal [3] den Link zum Plugin-Verzeichnis des Browsers setzen. Für Sun Java 6 sieht der Link unter Edgy Eft 6.10 so aus: {{{#!vorlage Befehl sudo ln -sf /usr/lib/jvm/java-6-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/firefox/plugins/ }}} Für Blackdown Java sieht der Link folgendermaßen aus: {{{#!vorlage Befehl sudo ln -sf /usr/lib/j2se/1.4/jre/plugin/i386/mozilla/libjavaplugin_oji.so /usr/lib/firefox/plugins/ }}} Dies sind natürlich nur Beispiele. Bei anderen Versionen von Java und/oder Ubuntu muss der Befehl angepasst werden. [[Anker(Ubuntu64bit)]] == Ubuntu 64 Bit == [[Bild(Wiki/Icons/ubuntu64.png, 80, right)]] Für die Integration von Java in Browsern zur Anzeige von Java-Applets oder Start von Java Web Start Applikationen muss bis dato noch die 32 Bit Version von Java verwendet werden. Dies kann jedoch parallel zur 64 Bit Version erfolgen, d.h. für Java-Anwendungen die nicht im Browser laufen, kann die 64 Bit Version genutzt werden. Eine Möglichkeit ist, auf der Sun [http://java.com/de/download/manual.jsp Java Downloadseite] die aktuelle "Linux (selbst extrahierende Datei)" (nicht RPM) herunterzuladen und auszuführen. Wird man nach dem Zielpfad gefragt, wählt man ein separates (beliebiges) Verzeichnis - so können auch bereits bestehende Java-Versionen nebeneinander installiert werden. Die Konfiguration im Browser ist hier am Beispiel von [:Opera:] gezeigt: im Menü ''"Tools -> Preferences -> Advanced -> Content"'' gibt man mit ''"Java options..."'' den Pfad der zuvor installierten Java-Version an (z.B. '''/home/apps/jre1.5.0_06/lib/i386''') und setzt danach das Häkchen bei ''"Enable Java"''. Nach einem Neustart des Browsers sollten dann Java-Applets funktionieren. [[Anker(Java_Optimierung)]] = Programme beschleunigen = Als Beispielaufruf sei der Befehl {{{#!vorlage Befehl java -jar myFancyGuiApp.jar }}} gegeben. Auf Windows-Systemen wird automatisch die DirectX-Beschleunigung verwendet, aber auf Unix-Systemen leider nicht automatisch die OpenGL-Beschleunigung. Um diese einzuschalten verwendet man den Parameter ''-Dsun.java2d.opengl=true'' (siehe [http://java.sun.com/j2se/1.5.0/docs/guide/2d/flags.html#opengl System Properties for All Platforms] {en} / [http://java.sun.com/j2se/1.5.0/docs/guide/2d/new_features.html#ogl Support for Hardware-Accelerated Rendering Using OpenGL] {en} ): {{{#!vorlage Befehl java -Dsun.java2d.opengl=true -jar myFancyGuiApp.jar }}} Je nach Rechnerarchitektur (z.B. 64bit-System) wird als Standard (siehe [http://java.sun.com/j2se/1.5.0/docs/guide/vm/server-class.html Server-Class Machine Detection] {en} ) die Server-VM verwendet. Um die für Client-Anwendungen optimierte VM zu verwenden, muss man auf solchen Systemen explizit den Parameter ''-client'' angeben: {{{#!vorlage Befehl java -client -jar myFancyGuiApp.jar }}} Es hängt dabei von der verwendeten VM ab, ob eine Client-VM für 64bit verfügbar ist. Suns 5.0 64bit VM scheint noch keine Client-VM zu unterstützen, der Parameter schadet aber nicht. Insofern sollte jede grafische Anwendung mit dem Parameter ''-client'' gestartet werden. Schließlich kann man je nach Anwendung (z.B. Java-Spiele oder andere umfangreichere Applikationen) auch noch Geschwindigkeit herausholen, indem man der Anwendung mehr als die maximalen 64 MB zur Verfügung stellt. Hierzu dient der Parameter ''-Xmx'': {{{#!vorlage Befehl java -Xmx256m -jar myFancyGuiApp.jar }}} Natürlich kann man auch alle miteinander kombinieren: {{{#!vorlage Befehl java -client -Xmx256m -Dsun.java2d.opengl=true -jar myFancyGuiApp.jar }}} Diese und weitere Parameter sind auch noch einmal in den [http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/java.html#options Java options] {en} erläutert. Es gibt noch zahlreiche weitere Parameter, um die Java VM zu tunen, aber die hier vorgestellten sind die einfachsten, welche auch meist die größte Wirkung bringen. Natürlich ist eine spürbare Beschleunigung damit nicht zwingend garantiert, aber man sollte es mal ausprobieren und staunen, warum das nicht als Standard so schnell geht. [[Anker(Versionswahl)]] = Verwendete Java-Version einstellen = Es ist möglich mehrere verschiedene REs und SDKs zu installieren. Welche Version systemweit benutzt wird (z.B. durch Eingabe von "java" in der Shell), kann man mit Hilfe des [:Alternativen-System:Alternativen-Systems] einstellen. Diese Einstellung kann man mit '''java''' für die ''Java-Virtual-Machine'' (in JRE enthalten) und mit '''javac''' für den ''Java-Compiler'' (in JDK/SDK enthalten) vornehmen: {{{#!vorlage Befehl sudo update-alternatives --config java }}} = Problemlöser Startscript = Bei einigen Java-Programmen findet die Java-Umgebung nicht den richtigen Pfad zum Programmverzeichnis. Es kommt dann zu sehr kuriosen Fehlern. Abhilfe schafft hier ein kleines Startscript. Vorraussetzung: Der Ordner mit dem Java-Programm sollte sich direkt im [:Homeverzeichnis:] befinden. Der Startscript sorgt dafür, dass das Programm immer direkt aus dem Programmordner gestartet wird. Der Startscript lässt sich komfortabel einer Desktopverknüpfung oder einem Starter im [:GNOME_Panel:] zuweisen. {{{#!/bin/bash #start.sh - Der Java-Programm-Starter #In den Programmordner wechseln cd ~/javaprgrammordner/ #Java-Programm starten java -jar programmname.jar exit 0 }}} Dieses Script als start.sh direkt in den Java-Programmordner speichern und in der [:Konsole:] mit folgendem Befehl ausführbar machen: {{{#!vorlage Befehl chmod u+x start.sh }}} = Links = * [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://wiki.beryl-project.org/wiki/Java Beryl-Wiki] {en} - Weitere Informationen und andere Lösungsmöglichkeiten bei Problemen mit Beryl * [http://www.linux-fuer-alle.de/doc_show.php?docid=190 Umgebungsvariable JAVA_HOME richtig setzen] {de} Sehr einfache Anleitung ---- # tag: Programmierung, Internet