ubuntuusers.de

ubuntuusers.deWikiJava3D

Java3D

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Java 3D ist eine Erweiterung für Java {en} und fügt Java 3D-Funktionen basierend auf OpenGL hinzu.

Dieser Artikel beschreibt allgemein die Installation von Java 3D(bzw. die OpenSource-Variante »3D Graphics API für die Java-Plattform«) und im Besonderen die Integration in Eclipse um eigene Java 3D-Programme schreiben zu können. Es wird dabei vorausgesetzt, dass Java von Sun Microsystems (Oracle) bzw. OpenJDK bereits installiert ist. Die Installation von Java wird ausführlich im Wikieintrag zu Java erklärt.

Hinweis:

Standardmäßig ist nur die freie GNU Implementation von JAVA(GIJ) unter Ubuntu installiert. Die Java Version von Sun oder des OpenJDK Projekts muss also normalerweise nachinstalliert werden. In den Beispielen wird davon ausgegangen, dass Sun Java/OpenJDK in der Version 6 installiert ist.

Installation

Sun Java 3D 1.5.x

Die aktuelle Version von Java 3D ist die 1.5.2 ( Stand: September 2011 ). Leider befindet sich Java 3D noch nicht in den Paketquellen, weshalb eine manuelle Installation nötig ist. Dabei handelt es sich eigentlich nur um das Entpacken einiger weniger Dateien in die richtigen Verzeichnisse.

Zunächst benötigt man von https://java3d.dev.java.net/binary-builds.html {en} das Archiv java3d-1_5_2-linux-i586.zip ( java3d-1_5_2-linux-amd64.zip falls man einen amd64 Prozessor verwendet ).

Das Archiv speichert man im Verzeichnis /tmp.

OpenJDK

Ab Hardy Heron 8.04 steht auch eine frei Alternative zu Sun Java mit OpenJDK zur Verfügung. Hier wird nun beschrieben, wie man Java 3D bei Verwendung von OpenJDK installiert.

Installation von Java 3D

Hinweis:

OpenJDK sind die von Sun freigegebenen Quellen von Java und daher vollständig zu Sun Java kompatibel.

cd /tmp
unzip java3d-1_5_*.zip
cd java3d-1_5_*
unzip j3d-jre.zip
sudo cp lib/ext/* /usr/lib/jvm/java-6-openjdk/jre/lib/ext/
sudo cp lib/i386/* /usr/lib/jvm/java-6-openjdk/jre/lib/i386/ 

Falls amd64 verwendet wird, muss als letzter Befehl folgendes eingegeben werden:

sudo cp lib/amd64/* /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/ 

Integration in Ubuntu

Um Probleme beim Ausführen von Java 3D-Programmen zu vermeiden sollte Sun Java/OpenJDK als Standard-VM [2] festgelegt werden.

Dies erreicht man, indem man im Terminal [1] folgendes eingibt:

sudo update-alternatives --config java 

Vor einem Test muss der Webbrowser eventuell neu gestartet werden. Für einen ersten Funktionstest von Java 3D kann man diese Testseite {de} aufrufen.

Zum Programmieren empfiehlt es sich ebenfalls den Sun Java-Compiler/OpenJDK-Compiler javac als Standard festzulegen.

sudo update-alternatives --config javac 

Bekannte Probleme

Wenn man eine ATI-Grafikkarte verwendet, erhält man beim Ausführen von Java 3D-Programmen folgende Warnung:

java java3DProgramm
Java 3D WARNING : reported GLX version = 1.2
GLX version 1.3 or higher is required
The reported version number may be incorrect. There is a known ATI driver bug in glXQueryVersion that
incorrectly reports the GLX version as 1.2 when it really is 1.3, so Java 3D will attempt to run anyway.

Wenn das Java 3D-Programm trotzdem ausgeführt wird, kann man diese Fehlermeldung einfach ignorieren. Läuft das Java 3D-Programm aber nicht, dann unterstützt die (wohl ältere) verwendete Grafikkarte bzw. der verwendete Treiber kein GLX 1.3 und muss gegen eine neuere Grafikkarte ausgetauscht werden. Vorzugsweise von Nvidia oder Intel, da diese eine bedeutend bessere Ubuntu-Unterstützung bieten als ATI.

Integration in Eclipse

Da Sun Java/OpenJDK schon installiert ist, sollte man Eclipse auch damit ausführen, da sich Eclipse damit bedeutend schneller anfühlt und unschöne Fehlermeldungen in Eclipse vermieden werden. Dafür bieten sich zwei Vorgehensweisen an:

Option 1: Man gibt jedesmal beim Starten von Eclipse die VM direkt über den Kommandozeilenparameter -vm an.

/usr/bin/eclipse -vm /usr/lib/jvm/java-6-sun/bin/java 

bzw für OpenJDK:

/usr/bin/eclipse -vm /usr/lib/jvm/java-6-openjdk/bin/java 

Option 2: Man trägt in die Datei /etc/eclipse/java_home an erster Stelle die Java-VM/OpenJDK-VM ein. Denn Eclipse verwendet immer die erste funktionierende VM, die es in dieser Liste findet. Dazu öffnet man /etc/eclipse/java_home in einem Editor mit Root-Rechten [3] und trägt vor allen anderen Einträgen

/usr/lib/jvm/java-6-sun

bzw für OpenJDK:

/usr/lib/jvm/java-6-openjdk

ein.

Java3D Dokumentation

Um die in Eclipse für Java gewohnte kontextsensitive Hilfe auch für Java 3D-Methoden angeboten zu bekommen muss die Java 3D-Dokumentation und der Java 3D-Quellcode in Eclipse eingebunden werden. Dafür besorgt man sich erst einmal von https://java3d.dev.java.net/binary-builds.html {en}

  • j3d-1_5_1-src.zip

  • vecmath-1_5_1-src.zip

  • java3d-1_5_1-api-docs.zip

und speichert sie im Verzeichnis /tmp.

Dann öffnet man ein Terminal [1] und kopiert die Dateien:

cd /tmp
sudo cp j3d-1_5_?-src.zip /usr/lib/jvm/java-6-sun/ 
sudo cp vecmath-1_5_?-src.zip /usr/lib/jvm/java-6-sun/
sudo unzip /tmp/java3d-1_5_?-api-docs.zip -d /usr/share/doc/ 

Hinweis:

Für OpenJDK muss /usr/lib/jvm/java-6-sun/ gegen /usr/lib/jvm/java-6-openjdk/ ausgetauscht werden.

Danach sieht das ganze so aus:

Archiv Java3D (für Java 6) gespeichert in (für OpenJDK 6) gespeichert in
j3d-1_5_1-src.zip Quellcode /usr/lib/jvm/java-6-sun/ /usr/lib/jvm/java-6-openjdk/
vecmath-1_5_1-src.zip Quellcode /usr/lib/jvm/java-6-sun/ /usr/lib/jvm/java-6-openjdk/
java3d-1_5_1-api-docs.zip API Dokumentation /usr/share/doc/java3d-1_5_1-api-docs /usr/share/doc/java3d-1_5_1-api-docs

Hinweis:

Der Quellcode muss nicht entpackt werden. Eclipse kann auch direkt aus den Archiven lesen. Das gilt auch für die API-Dokumentation, allerdings ist es von Vorteil diese zu entpacken, da sie so einfacher im Webbrowser zu öffnen ist und man einfacher Lesezeichen auf Seiten in der API-Dokumentation setzen kann.

Im nächsten Schritt muss man Eclipse diese Dokumentation bekannt machen. Dazu startet man Eclipse und wählt im Hauptmenü "Window -> Preferences..." aus. Die Einstellungen von Eclipse öffnen sich und unter "Java -> Installed JREs" findet man die Eclipse bekannten Java Versionen(JREs). Dort sollte z.B. java-6-sun-1.6.0.03 stehen. Diesen Eintrag wählt man an und klickt rechts auf "[Edit...]". Jetzt sieht man eine Liste mit den JRE system libraries. Darunter sollten sich diese 3 Einträge befinden:

  • /usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/ext/j3dcore.jar

  • /usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/ext/j3dutils.jar

  • /usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/ext/vecmath.jar

Nun wählt man j3core.jar (j3dutils.jar, vecmath.jar) aus und klickt rechts auf "[Javadoc Location...]". Dort trägt man den Pfad zur API-Dokumentation file:///usr/share/doc/java3d-1_5_1-api-docs oder ersatzweise den Link zur Online-API-Dokumentation http://download.java.net/media/java3d/javadoc/1.5.0-latest/index.html ein.

Dann klickt man für j3core.jar (j3dutils.jar) rechts auf "[Source Attachment...]". Dort trägt man den Pfad zum Quellcode (englisch: Sourcecode) /usr/lib/jvm/java-6-sun/j3d-1_5_1-src.zip ein.

Für vecmath.jar trägt man als Quellcodepfad "/usr/lib/jvm/java-6-sun/vecmath-1_5_1-src.zip" ein.

Hinweis:

Sollte man einen neueren Quellcode (z.B. j3d-1_5_2-src.zip) verwenden, muss man natürlich den Pfad anpassen.
Für OpenJDK muss der Pfad auf /usr/lib/jvm/java-6-openjdk/vecmath-1_5_1-src.zip angepasst werden.

Performance

Für 3D-Programme ist es außerordentlich wichtig die Systemressourcen gut auszunutzen. Darum soll dieser Abschnitt dabei helfen Java 3D-Programme optimal auszuführen.

OpenGL 2D-Beschleunigung

Ob die OpenGL-Beschleunigung für ein laufendes Java 3D-Programm aktiviert ist, lässt sich durch

jinfo -sysprops <PID des JavaProgramms> | grep sun.java2d.opengl 

herausfinden. Die <PID des JavaProgramms> erfährt man durch:

top -c | grep java 

Achtung!

:!: Wenn das jinfo Kommando auf ein Java 3D-Programm angewendet wird, kann das System abstürzen.

  • Java 3D {en} - Hauptseite des Java 3D-Projekts

  • Java 3D Test {de} - Zum Überprüfen, ob Java 3D korrekt installiert wurde

Diese Revision wurde am 28. September 2011 16:57 von Andreas B. erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Programmierung, Java

Passwort vergessen?