Please accept this as a starting point for installing Oracle java JDK-9 or JRE-9 with the browser plugin (now deprecated).
Java version 9 has been substantially changed from the earlier versions and there are a few gotchas that it is best to avoid.
This thread addresses only the Java 9 JDK and JRE Standard Edition, the Server and Enterprise editions may be entirely different. I am also addressing the 64 bit architecture.
The root of the downloads is at: http://www.oracle.com/technetwork/java/javase/downloads/index.html
The rpm does not work. It puts the files into their intended places and then fails to set up the correct alternatives structures. It also places a few links into the /usr/bin folder that have to be cleared away before you set up the alternatives.
Download the tar.gz file the name of which will change with the versions and revisions but is at present jdk-9_linux-64_bin.tar.gz - the 9 will be followed by minor version and revision numbers later.
As super user unpack the tar file into folder /usr/java and you will have a folder with all the required content named /usr/java/jdk-9 - you may have to create folder /usr/java
At this point it may be a good idea to follow the Oracle structures by creating two links in /usr/java to direct references to the correct place. (Why they do this I have no idea).
As super user:
ln -s jdk-9 latest
ln -s latest default
Now it is only necessary to run two script files to set up the alternatives. Best to close browsers before running the plugin script. I have called these scripts:
install-alternatives-oracle-jdk9.sh
sudo /usr/sbin/update-alternatives --install /usr/bin/javac javac /usr/java/default/bin/javac 3 \
--slave /usr/bin/appletviewer appletviewer /usr/java/default/bin/appletviewer \
--slave /usr/bin/jar jar /usr/java/default/bin/jar \
--slave /usr/bin/jarsigner jarsigner /usr/java/default/bin/jarsigner \
--slave /usr/lib64/jvm/java java_sdk /usr/java/default \
--slave /usr/bin/javadoc javadoc /usr/java/default/bin/javadoc \
--slave /usr/bin/javah javah /usr/java/default/bin/javah \
--slave /usr/bin/javap javap /usr/java/default/bin/javap \
--slave /usr/bin/javapackager javapackager /usr/java/default/bin/javapackager \
--slave /usr/bin/jconsole jconsole /usr/java/default/bin/jconsole \
--slave /usr/bin/jcmd jcmd /usr/java/default/bin/jcmd \
--slave /usr/bin/jdb jdb /usr/java/default/bin/jdb \
--slave /usr/bin/jdeprscan jdeprscan /usr/java/default/bin/jdeprscan \
--slave /usr/bin/jdeps jdeps /usr/java/default/bin/jdeps \
--slave /usr/bin/jinfo jinfo /usr/java/default/bin/jinfo \
--slave /usr/bin/jlink jlink /usr/java/default/bin/jlink \
--slave /usr/bin/jmap jmap /usr/java/default/bin/jmap \
--slave /usr/bin/jmod jmod /usr/java/default/bin/jmod \
--slave /usr/bin/jps jps /usr/java/default/bin/jps \
--slave /usr/bin/jrunscript jrunscript /usr/java/default/bin/jrunscript \
--slave /usr/bin/jshell jshell /usr/java/default/bin/jshell \
--slave /usr/bin/jstack jstack /usr/java/default/bin/jstack \
--slave /usr/bin/jstat jstat /usr/java/default/bin/jstat \
--slave /usr/bin/jstatd jstatd /usr/java/default/bin/jstatd \
--slave /usr/bin/pack200 pack200 /usr/java/default/bin/pack200 \
--slave /usr/bin/rmic rmic /usr/java/default/bin/rmic \
--slave /usr/bin/schemagen schemagen /usr/java/default/bin/schemagen \
--slave /usr/bin/serialver serialver /usr/java/default/bin/serialver \
--slave /usr/bin/unpack200 unpack200 /usr/java/default/bin/unpack200 \
--slave /usr/bin/wsgen wsgen /usr/java/default/bin/wsgen \
--slave /usr/bin/wsimport wsimport /usr/java/default/bin/wsimport \
--slave /usr/bin/xjc xjc /usr/java/default/bin/xjc
install-alternatives-oracle-jre9.sh
sudo /usr/sbin/update-alternatives --install /usr/bin/java java /usr/java/default/bin/java 3 \
--slave /usr/bin/idlj idlj /usr/java/default/bin/idlj \
--slave /usr/lib64/jvm/jre jre /usr/java/default \
--slave /usr/bin/keytool keytool /usr/java/default/bin/keytool \
--slave /usr/bin/orbd orbd /usr/java/default/bin/orbd \
--slave /usr/bin/policytool policytool /usr/java/default/bin/policytool \
--slave /usr/bin/rmid rmid /usr/java/default/bin/rmid \
--slave /usr/bin/rmiregistry rmiregistry /usr/java/default/bin/rmiregistry \
--slave /usr/bin/servertool servertool /usr/java/default/bin/servertool \
--slave /usr/bin/tnameserv tnameserv /usr/java/default/bin/tnameserv
install-alternatives-oracle-jre9-plugin.sh
sudo /usr/sbin/update-alternatives --install /usr/lib64/browser-plugins/javaplugin.so javaplugin /usr/java/default/lib/libnpjp2.so 10 \
--slave /usr/bin/javaws javaws /usr/java/default/bin/javaws \
--slave /usr/bin/jcontrol jcontrol /usr/java/default/bin/jcontrol
You now only have to run, as super user, the update-alternatives --config commands:
update-alternatives --config java
update-alternatives --config javac
update-alternatives --config javaplugin
If you did have previous alternatives installed then you just have to select the one you require.
NOTE the JDK-9 has no manual pages.
I do hope that this helps somebody.
Please ammend, modify, extend and correct any of the above.
Peter