Workshops

08
Dez 2013
Java unter Ubuntu/Kubuntu Thumbnail

Nach etwas längerer Zeit habe ich wieder Kubuntu auf meinem Schleptop installiert. Natürlich war ich guter Hoffnung, dass inzwischen alle Programme mit den Standardeinstellungen in Kubuntu laufen. Naja, zumindest habe ich inzwischen raus gefunden, warum das System manchmal einfriert, wenn man bei YouTube Videos anschaut und warum man bei manchen Programmen manches nicht machen kann, wie z.B. bestimmte Buttons anklicken. 🙂

Für die Leidensgenossen mit dem Gefriersystem, Java ist nicht die Lösung, sondern anderer Grafikkartentreiber. Schaut mal unter system->Zusätzliche Treiber nach und aktiviert die empfohlenen Treiber.

So, nun zurück zu den halb funktionierenden Java-Programmen. Hier ist das Problem tatsächlich Java, und zwar ist das openjdk böse. Für irgendwas scheint es gut zu sein, denn man kann es installieren, ich kann das zumindest nicht empfehlen. Was bei mir keine Probleme bereitete ist das gute alte JDK von Oracle. Unten beschreibe ich , was man alles machen muss, um openjdk mit dem oracle jdk zu ersetzen.

1. Aktuelles JDK von Oracle runterladen.

2. Auspacken: Datei mit rechter Maustaste anklicken und entpacken auswählen, oder ganz cool über die Konsole, den Befehl könnt ihr euch googeln, ich tippe nicht so gerne 😉

3. Nun muss man den entpackten Ordner nach /usr/lib/jvm verschieben, da muss man leider etwas tippen, da man im Systemordner nicht fröhlich mit Drag & Drop arbeiten kann. Wechselt zum Download-Ordner, wo das entpackte Archiv liegt (nicht den entpackten Ordner öffnen), und klickt irgendwo auf eine freie Stelle mit der rechten Maustaste. Wählt Aktionen->Terminal hier öffnen. Im Terminal gebt ihr dann folgendes ein.

  1. sudo mkdir -p /usr/lib/jvm
  2. sudo mv ./jdk1.7.0_02 /usr/lib/jvm/jdk1.7.0

Der erste Befehl erstellt einen jvm Ordner im usr/lib Verzeichnis, falls noch nicht vorhanden. Der zweite Befehl verschiebt den Entpackten jdk Ordner in den jvm Ordner.

4. Mit den nächsten Befehlen legen wir die Priorität des verschobenen JDKs fest. Mit 1 ist die Priorität ganz niedrig. Wenn z.B. ein anderes JDK installiert wird, dann wird das neue JDK automatisch als Standard gewählt. Setzt die Zahl einfach etwas höher, wenn ihr das JDK von Oracle immer als Standard-JDK haben wollt.

  1. sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0/bin/java" 1
  2. sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0/bin/javac" 1
  3. sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0/bin/javaws" 1

5. Nach der Änderung müssen die Zugriffsrechte neu angepasst werden.

  1. sudo chmod a+x /usr/bin/java
  2. sudo chmod a+x /usr/bin/javac
  3. sudo chmod a+x /usr/bin/javaws
  4. sudo chown -R root:root /usr/lib/jvm/jdk1.7.0

6. Jetzt wollen wir das neue jdk auch auswählen und benutzen. das geht über die folgenden Befehle.

  1. sudo update-alternatives --config java
  2. sudo update-alternatives --config javac
  3. sudo update-alternatives --config javaws

Zur Auswahl werden die JDKs aus dem jvm Ordner stehen. Wählt einfach den Eintrag mit … jvm/jdk1.7.0 aus.Zwischendurch könnt ihr mit den Befehl java -version auch testen, ob das neue JDK ausgewählt wurde.

7. Nun muss das Firefox-Plugin aktiviert werden.

  1. ln -s /usr/lib/jvm/jdk1.7.0/jre/lib/i386/libnpjp2.so ~/.mozilla/plugins/

  1. ln -s /usr/lib/jvm/jdk1.7.0/jre/lib/amd64/libnpjp2.so ~/.mozilla/plugins/

8. Zusätzlich muss das apparmor-Profil von Firefox an das neue JDK angepasst werden. Editiert dazu die Datei in /etc/apparmor.d/abstractions/ubuntu-browsers.d/java

Sucht die beiden Zeilen:
/usr/lib/jvm/java-*-sun-1.*/jre/bin/java{,_vm} cx -> browser_java,
/usr/lib/jvm/java-*-sun-1.*/jre/lib/*/libnp*.so cx -> browser_java,

und ersetzt sie mit diesen Zeilen.
/usr/lib/jvm/jdk*/jre/bin/java{,_vm} cx -> browser_java,
/usr/lib/jvm/jdk*/jre/lib/*/libnp*.so cx -> browser_java,

9. Jetzt muss apparmor noch neugestartet werden.

  1. sudo /etc/init.d/apparmor restart

Das wars auch schon. Diese Anleitung ist natürlich auch auf Englisch und für JDK6 verfügbar. Folgt einfach diesem Link

Schreibe einen Kommentar