====== Oracle Java in /etc/alternatives aufnehmen ====== Es gibt dazu viele spannende Anleitungen, z. B. https://dalanzg.github.io/tips-tutorials/opensuse/2017/03/18/change-openjdk-to-oracle-jdk-in-opensuse/ oder die "offizielle" Version auf https://en.opensuse.org/SDB:Installing_Java, eingedeutscht unter https://de.opensuse.org/Sun_Java verfügbar. Hier nur kurz, wie ich vorgegangen bin. * von der Oracle-Seite http://www.oracle.com/technetwork/java/javase/downloads/index.html habe ich mir das aktuellste JDE für Java 1.8 heruntergeladen, und zwar als rpm * das habe ich dann als root installiert mit dem Befehl ''rpm -ivh ~werner/down/orakel/jdk-8u152-linux-x64.rpm'' * das Schöne daran ist, dass sich das Paket nach ''/usr/java'' installiert, wo es von openSUSE-Paketen völlig unberührt ist, und dass es einen Link ''/usr/java/latest'' zur jeweils aktuellen Version anlegt. Das kann ich im Folgenden nutzen * wir komprimieren mal die man-Pages cd /usr/lib/java/latest/man/man1 gzip *.1 * das Export-Verzeichnis wird vorbereitet: mkdir /usr/lib64/jvm-exports/jdk_latest cd /usr/lib64/jvm-exports/jdk_latest for DAT in jaas jdbc-stdext jndi jndi-cos jndi-ldap jndi-rmi sasl; do \ ln -s /usr/java/latest/jre/lib/rt.jar ${DAT}-1.8.0_Orac.jar; \ ln -s ${DAT}-1.8.0_Orac.jar ${DAT}-1.8.0.jar; \ ln -s ${DAT}-1.8.0_Orac.jar ${DAT}.jar; \ done ln -s jdbc-stdext-1.8.0_Orac.jar jdbc-stdext-3.0.jar ln -s /usr/java/latest/jre/lib/jce.jar jce-1.8.0_Orac.jar ln -s jce-1.8.0_Orac.jar jce-1.8.0.jar ln -s jce-1.8.0_Orac.jar jce.jar ln -s /usr/java/latest/jre/lib/jsse.jar jsse-1.8.0_Orac.jar ln -s jsse-1.8.0_Orac.jar jsse-1.8.0.jar ln -s jsse-1.8.0_Orac.jar jsse.jar * zuerst wird Java selbst in ''/etc/alternatives'' aufgenommen. Der Befehl steht im Original auf einer Zeile und wird hier der Lesbarkeit wegen umbrochen /usr/sbin/update-alternatives --install /usr/bin/java java /usr/java/latest/bin/java 18152 \ --slave /usr/share/man/man1/java.1.gz java.1.gz /usr/java/latest/man/man1/java.1.gz \ --slave /usr/lib64/jvm/jre jre /usr/java/latest/jre \ --slave /usr/lib64/jvm-exports/jre jre_exports /usr/lib64/jvm-exports/jdk_Oracle \ --slave /usr/bin/keytool keytool /usr/java/latest/bin/keytool \ --slave /usr/share/man/man1/keytool.1.gz keytool.1.gz /usr/java/latest/man/man1/keytool.1.gz \ --slave /usr/bin/orbd orbd /usr/java/latest/bin/orbd \ --slave /usr/share/man/man1/orbd.1.gz orbd.1.gz /usr/java/latest/man/man1/orbd.1.gz \ --slave /usr/bin/policytool policytool /usr/java/latest/bin/policytool \ --slave /usr/share/man/man1/policytool.1.gz policytool.1.gz /usr/java/latest/man/man1/policytool.1.gz \ --slave /usr/bin/rmid rmid /usr/java/latest/bin/rmid \ --slave /usr/share/man/man1/rmid.1.gz rmid.1.gz /usr/java/latest/man/man1/rmid.1.gz \ --slave /usr/bin/rmiregistry rmiregistry /usr/java/latest/bin/rmiregistry \ --slave /usr/share/man/man1/rmiregistry.1.gz rmiregistry.1.gz /usr/java/latest/man/man1/rmiregistry.1.gz \ --slave /usr/bin/servertool servertool /usr/java/latest/bin/servertool \ --slave /usr/share/man/man1/servertool.1.gz servertool.1.gz /usr/java/latest/man/man1/servertool.1.gz \ --slave /usr/bin/tnameserv tnameserv /usr/java/latest/bin/tnameserv \ --slave /usr/share/man/man1/tnameserv.1.gz tnameserv.1.gz /usr/java/latest/man/man1/tnameserv.1.gz * etwas einfacher lässt sich das Java-Plugin für den Browser integrieren: /usr/sbin/update-alternatives --install /usr/lib64/browser-plugins/javaplugin.so javaplugin /usr/java/latest/jre/lib/amd64/libnpjp2.so 18152 \ --slave /usr/bin/javaws javaws /usr/java/latest/jre/bin/javaws \ --slave /usr/share/man/man1/javaws.1 javaws.1 /usr/java/latest/man/man1/javaws.1 Ja, das war es schon :-). Ich finde es einfacher als das Auspacken der .tar.gz.-Dateien, die man ebenfalls bei Oracle herunterladen kann, wie es auf den openSUSE-Seiten beschrieben ist. Und es hat den Vorteil, dass man es wahrscheinlich nie wieder anfassen muss, denn ein neueres Paket installiert sich dann ebenfalls nach ''/usr/java'' und biegt den Symlink ''latest'' entsprechend um. Damit muss sich die Alternatives-Konfiguration nie mehr ändern :-D