Skip to content

Instantly share code, notes, and snippets.

@jaehoo
Created March 12, 2015 22:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jaehoo/a39c7bfba1cd7673932e to your computer and use it in GitHub Desktop.
Save jaehoo/a39c7bfba1cd7673932e to your computer and use it in GitHub Desktop.
Java JDK installer v2.0 for Suse
#!/bin/bash
##
# Install Oracle/Sun Java JDK/JRE 6 on openSUSE
##
#JDK_HOME
echo -n "Enter JDK_HOME:"
read path
echo -n "Enter Java version (1.5, 1.6_45):"
read version
if [ -z $path ] || [ -z $version ]
then
echo "No argument supplied"
exit 1
fi
if [ ! -d "$path" ]; then
echo "$path is not a valid dir"
exit 1
fi
# Update this with JDK_HOME
JDK_HOME=$path
#version=1.6.0
# Normally not changed. Used to detect architecture, and set helper variables
MACHINE_TYPE=`uname -m`
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
LIB_DIR=/usr/lib64
JAVA_ARCH=amd64
else
LIB_DIR=/usr/lib
JAVA_ARCH=i386
fi
update-alternatives --verbose --install /usr/bin/javac javac ${JDK_HOME}/bin/javac 20000 \
--slave ${LIB_DIR}/jvm/java-${version}-sun java_sdk ${JDK_HOME}/ \
--slave ${LIB_DIR}/jvm-exports/java-${version}-sun java_sdk_exports ${JDK_HOME}/ \
--slave /usr/bin/javah javah ${JDK_HOME}/bin/javah \
--slave /usr/bin/jrunscript jrunscript ${JDK_HOME}/bin/jrunscript \
--slave /usr/bin/jinfo jinfo ${JDK_HOME}/bin/jinfo \
--slave /usr/bin/jconsole jconsole ${JDK_HOME}/bin/jconsole \
--slave /usr/bin/native2ascii native2ascii ${JDK_HOME}/bin/native2ascii \
--slave /usr/bin/apt apt ${JDK_HOME}/bin/apt \
--slave /usr/bin/jhat jhat ${JDK_HOME}/bin/jhat \
--slave /usr/bin/jdb jdb ${JDK_HOME}/bin/jdb \
--slave /usr/bin/wsimport wsimport ${JDK_HOME}/bin/wsimport \
--slave /usr/bin/extcheck extcheck ${JDK_HOME}/bin/extcheck \
--slave /usr/bin/serialver serialver ${JDK_HOME}/bin/serialver \
--slave /usr/bin/javadoc javadoc ${JDK_HOME}/bin/javadoc \
--slave /usr/bin/jarsigner jarsigner ${JDK_HOME}/bin/jarsigner \
--slave /usr/bin/jmap jmap ${JDK_HOME}/bin/jmap \
--slave /usr/bin/wsgen wsgen ${JDK_HOME}/bin/wsgen \
--slave /usr/bin/jps jps ${JDK_HOME}/bin/jps \
--slave /usr/bin/jstat jstat ${JDK_HOME}/bin/jstat \
--slave /usr/bin/rmic rmic ${JDK_HOME}/bin/rmic \
--slave /usr/bin/schemagen schemagen ${JDK_HOME}/bin/schemagen \
--slave /usr/bin/jstatd jstatd ${JDK_HOME}/bin/jstatd \
--slave /usr/bin/xjc xjc ${JDK_HOME}/bin/xjc \
--slave /usr/bin/jstack jstack ${JDK_HOME}/bin/jstack \
--slave /usr/bin/appletviewer appletviewer ${JDK_HOME}/bin/appletviewer \
--slave /usr/bin/jsadebugd jsadebugd ${JDK_HOME}/bin/jsadebugd \
--slave /usr/bin/jar jar ${JDK_HOME}/bin/jar \
--slave /usr/bin/javap javap ${JDK_HOME}/bin/javap \
--slave /usr/bin/HtmlConverter HtmlConverter ${JDK_HOME}/bin/HtmlConverter \
--slave /usr/bin/idlj idlj ${JDK_HOME}/bin/idlj \
--slave /usr/bin/jcontrol jcontrol ${JDK_HOME}/bin/jcontrol \
--slave /usr/bin/jvisualvm jvisualvm ${JDK_HOME}/bin/jvisualvm \
--slave /usr/share/man/man1/jstack.1.gz jstack.1.gz ${JDK_HOME}/man/man1/jstack.1 \
--slave /usr/share/man/man1/native2ascii.1.gz native2ascii.1.gz ${JDK_HOME}/man/man1/native2ascii.1 \
--slave /usr/share/man/man1/javadoc.1.gz javadoc.1.gz ${JDK_HOME}/man/man1/javadoc.1 \
--slave /usr/share/man/man1/jstatd.1.gz jstatd.1.gz ${JDK_HOME}/man/man1/jstatd.1 \
--slave /usr/share/man/man1/jstat.1.gz jstat.1.gz ${JDK_HOME}/man/man1/jstat.1 \
--slave /usr/share/man/man1/schemagen.1.gz schemagen.1.gz ${JDK_HOME}/man/man1/schemagen.1 \
--slave /usr/share/man/man1/jinfo.1.gz jinfo.1.gz ${JDK_HOME}/man/man1/jinfo.1 \
--slave /usr/share/man/man1/javap.1.gz javap.1.gz ${JDK_HOME}/man/man1/javap.1 \
--slave /usr/share/man/man1/jarsigner.1.gz jarsigner.1.gz ${JDK_HOME}/man/man1/jarsigner.1 \
--slave /usr/share/man/man1/jrunscript.1.gz jrunscript.1.gz ${JDK_HOME}/man/man1/jrunscript.1 \
--slave /usr/share/man/man1/xjc.1.gz xjc.1.gz ${JDK_HOME}/man/man1/xjc.1 \
--slave /usr/share/man/man1/wsimport.1.gz wsimport.1.gz ${JDK_HOME}/man/man1/wsimport.1 \
--slave /usr/share/man/man1/serialver.1.gz serialver.1.gz ${JDK_HOME}/man/man1/serialver.1 \
--slave /usr/share/man/man1/apt.1.gz apt.1.gz ${JDK_HOME}/man/man1/apt.1 \
--slave /usr/share/man/man1/rmic.1.gz rmic.1.gz ${JDK_HOME}/man/man1/rmic.1 \
--slave /usr/share/man/man1/jconsole.1.gz jconsole.1.gz ${JDK_HOME}/man/man1/jconsole.1 \
--slave /usr/share/man/man1/jmap.1.gz jmap.1.gz ${JDK_HOME}/man/man1/jmap.1 \
--slave /usr/share/man/man1/appletviewer.1.gz appletviewer.1.gz ${JDK_HOME}/man/man1/appletviewer.1 \
--slave /usr/share/man/man1/jps.1.gz jps.1.gz ${JDK_HOME}/man/man1/jps.1 \
--slave /usr/share/man/man1/jsadebugd.1.gz jsadebugd.1.gz ${JDK_HOME}/man/man1/jsadebugd.1 \
--slave /usr/share/man/man1/jhat.1.gz jhat.1.gz ${JDK_HOME}/man/man1/jhat.1 \
--slave /usr/share/man/man1/javah.1.gz javah.1.gz ${JDK_HOME}/man/man1/javah.1 \
--slave /usr/share/man/man1/jar.1.gz jar.1.gz ${JDK_HOME}/man/man1/jar.1 \
--slave /usr/share/man/man1/wsgen.1.gz wsgen.1.gz ${JDK_HOME}/man/man1/wsgen.1 \
--slave /usr/share/man/man1/jdb.1.gz jdb.1.gz ${JDK_HOME}/man/man1/jdb.1 \
--slave /usr/share/man/man1/javac.1.gz javac.1.gz ${JDK_HOME}/man/man1/javac.1 \
--slave /usr/share/man/man1/extcheck.1.gz extcheck.1.gz ${JDK_HOME}/man/man1/extcheck.1 \
--slave /usr/bin/unpack200 unpack200 ${JDK_HOME}/jre/bin/unpack200 \
--slave /usr/bin/pack200 pack200 ${JDK_HOME}/jre/bin/pack200 \
--slave /usr/share/man/man1/unpack200.1.gz unpack200.1.gz ${JDK_HOME}/man/man1/unpack200.1 \
--slave /usr/share/man/man1/pack200.1.gz pack200.1.gz ${JDK_HOME}/man/man1/pack200.1
update-alternatives --verbose --install /usr/bin/java java ${JDK_HOME}/jre/bin/java 20000 \
--slave ${LIB_DIR}/jvm/jre-${version}-sun jre ${JDK_HOME}/jre \
--slave ${LIB_DIR}/jvm-exports/jre-${version}-sun jre_exports ${JDK_HOME}/jre \
--slave /usr/bin/ControlPanel ControlPanel ${JDK_HOME}/bin/ControlPanel \
--slave /usr/bin/rmid rmid ${JDK_HOME}/jre/bin/rmid \
--slave /usr/bin/policytool policytool ${JDK_HOME}/jre/bin/policytool \
--slave /usr/bin/orbd orbd ${JDK_HOME}/jre/bin/orbd \
--slave /usr/bin/rmiregistry rmiregistry ${JDK_HOME}/jre/bin/rmiregistry \
--slave /usr/bin/tnameserv tnameserv ${JDK_HOME}/jre/bin/tnameserv \
--slave /usr/bin/keytool keytool ${JDK_HOME}/jre/bin/keytool \
--slave /usr/bin/servertool servertool ${JDK_HOME}/jre/bin/servertool \
--slave /usr/share/man/man1/keytool.1.gz keytool.1.gz ${JDK_HOME}/man/man1/keytool.1 \
--slave /usr/share/man/man1/rmid.1.gz rmid.1.gz ${JDK_HOME}/man/man1/rmid.1 \
--slave /usr/share/man/man1/orbd.1.gz orbd.1.gz ${JDK_HOME}/man/man1/orbd.1 \
--slave /usr/share/man/man1/servertool.1.gz servertool.1.gz ${JDK_HOME}/man/man1/servertool.1 \
--slave /usr/share/man/man1/rmiregistry.1.gz rmiregistry.1.gz ${JDK_HOME}/man/man1/rmiregistry.1 \
--slave /usr/share/man/man1/tnameserv.1.gz tnameserv.1.gz ${JDK_HOME}/man/man1/tnameserv.1 \
--slave /usr/share/man/man1/java.1.gz java.1.gz ${JDK_HOME}/man/man1/java.1 \
--slave /usr/share/man/man1/policytool.1.gz policytool.1.gz ${JDK_HOME}/man/man1/policytool.1
update-alternatives --verbose --install ${LIB_DIR}/browser-plugins/libjavaplugin.so javaplugin ${JDK_HOME}/jre/lib/${JAVA_ARCH}/libnpjp2.so 20000 \
--slave /usr/bin/javaws javaws ${JDK_HOME}/jre/bin/javaws \
--slave /usr/share/man/man1/javas.1.gz javaws.1.gz ${JDK_HOME}/man/man1/javaws.1
@RafaelLinux
Copy link

Great script. I was looking for something like that, but for JRE. Anyway, I was trying to add an "auto path discovering" to avoid ask user for any path, based on next command:
rpm -ql $(rpm -qa | grep jre) | grep libnpjp2.so
That will return absolute path to libnpjp2.so and use it like in:

plugin=$(rpm -ql $(rpm -qa | grep jre) | grep libnpjp2.so) && ln -svf "$plugin" /usr/lib/browser-plugins/
for 32bits or
plugin=$(rpm -ql $(rpm -qa | grep jre) | grep libnpjp2.so) && ln -svf "$plugin" /usr/lib64/browser-plugins/
for 64bits.

But you solved perfectly the architecture difficulty, so I would like to make universal your script, only asking user about version, as actual JDK version, 8u71 to simplify the user input.

Please, any suggestion?
Thank you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment