Last active
December 11, 2020 03:34
-
-
Save nocnokneo/fae7b70af4a7b2623b8c to your computer and use it in GitHub Desktop.
update-oracle-java-alternative.sh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -e | |
script_name=$(basename "$0") | |
print_usage() | |
{ | |
cat <<EOF | |
Usage: ${script_name} install ORACLE_JAVA_INSTALL_DIR [PRIORITY] | |
${script_name} remove ORACLE_JAVA_INSTALL_DIR | |
This script manages an Oracle JRE installation using the standard | |
'alternatives' tool to set the Oracle JRE (java) and browser plugin | |
(libnpjp2.so) as the system default. This allows OpenJDK to be installed | |
concurrently in order to satisfy the package dependency of other yum-installed | |
applications (e.g. LibreOffice). | |
This script has been tested on CentOS 7 and: | |
- Oracle Java 1.8.0_11 (installed via jre-8u11-linux-x64.rpm) | |
- Oracle Java 1.8.0_25 (installed via jre-8u25-linux-x64.rpm) | |
EOF | |
} | |
install_alternative() | |
{ | |
JAVA_HOME=$(readlink -e $1) | |
PRIORITY=${2:-1000000} | |
sudo update-alternatives \ | |
--install /usr/bin/java java ${JAVA_HOME}/bin/java ${PRIORITY} \ | |
--slave /usr/bin/keytool keytool ${JAVA_HOME}/bin/keytool \ | |
--slave /usr/bin/orbd orbd ${JAVA_HOME}/bin/orbd \ | |
--slave /usr/bin/pack200 pack200 ${JAVA_HOME}/bin/pack200 \ | |
--slave /usr/bin/rmid rmid ${JAVA_HOME}/bin/rmid \ | |
--slave /usr/bin/rmiregistry rmiregistry ${JAVA_HOME}/bin/rmiregistry \ | |
--slave /usr/bin/servertool servertool ${JAVA_HOME}/bin/servertool \ | |
--slave /usr/bin/tnameserv tnameserv ${JAVA_HOME}/bin/tnameserv \ | |
--slave /usr/bin/unpack200 unpack200 ${JAVA_HOME}/bin/unpack200 \ | |
--slave /usr/lib/jvm/jre jre ${JAVA_HOME} \ | |
--slave /usr/lib/jvm-exports/jre jre_exports ${JAVA_HOME}/lib | |
sudo update-alternatives --auto java | |
if [[ ${JAVA_HOME} =~ "1.7.0" ]]; then | |
sudo update-alternatives \ | |
--install /usr/lib/jvm/jre-1.7.0 jre_1.7.0 ${JAVA_HOME} ${PRIORITY} \ | |
--slave /usr/lib/jvm-exports/jre-1.7.0 jre_1.7.0_exports ${JAVA_HOME}/lib | |
sudo update-alternatives --auto jre_1.7.0 | |
fi | |
sudo update-alternatives \ | |
--install /usr/lib64/mozilla/plugins/libjavaplugin.so libjavaplugin.so.x86_64 ${JAVA_HOME}/lib/amd64/libnpjp2.so ${PRIORITY} \ | |
--slave /usr/bin/javaws javaws ${JAVA_HOME}/bin/javaws | |
sudo update-alternatives --auto libjavaplugin.so.x86_64 | |
} | |
remove_alternative() | |
{ | |
JAVA_HOME=$(readlink -m $1) | |
sudo update-alternatives --remove java ${JAVA_HOME}/bin/java 2>/dev/null || \ | |
echo "${JAVA_HOME}/bin/java already removed" | |
if [[ ${JAVA_HOME} =~ "1.7.0" ]]; then | |
sudo update-alternatives --remove jre_1.7.0 ${JAVA_HOME} 2>/dev/null || \ | |
echo "${JAVA_HOME} already removed" | |
fi | |
sudo update-alternatives --remove libjavaplugin.so.x86_64 ${JAVA_HOME}/lib/amd64/libnpjp2.so 2>/dev/null || \ | |
echo "${JAVA_HOME}/lib/amd64/libnpjp2.so already removed" | |
} | |
case "$1" in | |
install) | |
install_alternative $2 $3 | |
;; | |
remove) | |
remove_alternative $2 | |
;; | |
*) | |
print_usage 1>&2 | |
exit 1 | |
;; | |
esac |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment