Skip to content

Instantly share code, notes, and snippets.

@rkmax
Created July 25, 2013 14:34
Show Gist options
  • Select an option

  • Save rkmax/6080298 to your computer and use it in GitHub Desktop.

Select an option

Save rkmax/6080298 to your computer and use it in GitHub Desktop.
Switch between Java Installations
echo export JAVA_HOME=$TMPL_PATH
echo export JAVA_HOME=\$\{JAVA_HOME:-$TMPL_PATH\}
echo \# Enable this for non-reparenting window managers
echo \#export _JAVA_AWT_WM_NONREPARENTING=1
#!/usr/bin/env bash
OPEN_PATH="/usr/lib/jvm/java-7-openjdk"
ORACLE_PATH="/opt/java7"
SCRIPT_DIR="$HOME/.scripts/"
set_profile_files() {
cat "${SCRIPT_DIR}/switch_java.jdk_template" | TMPL_PATH="$JAVA_PATH" bash | $SUDO tee "/etc/profile.d/jdk.sh" > /dev/null
cat "${SCRIPT_DIR}/switch_java.jre_template" | TMPL_PATH="$JAVA_PATH/jre" bash | $SUDO tee "/etc/profile.d/jre.sh" > /dev/null
}
set_java_home() {
. /etc/profile.d/jdk.sh
. /etc/profile.d/jre.sh
echo "Settings JAVA_HOME to $JAVA_PATH"
}
set_binaries() {
local JAVA=$1
local BIN=$2
echo "Linking from $JAVA to $BIN"
$SUDO rm "$BIN/appletviewer"
$SUDO rm "$BIN/apt"
$SUDO rm "$BIN/extcheck"
$SUDO rm "$BIN/idlj"
$SUDO rm "$BIN/jar"
$SUDO rm "$BIN/jarsigner"
$SUDO rm "$BIN/java"
$SUDO rm "$BIN/javac"
$SUDO rm "$BIN/javadoc"
$SUDO rm "$BIN/javah"
$SUDO rm "$BIN/javap"
$SUDO rm "$BIN/jcmd"
$SUDO rm "$BIN/jconsole"
$SUDO rm "$BIN/jdb"
$SUDO rm "$BIN/jhat"
$SUDO rm "$BIN/jinfo"
$SUDO rm "$BIN/jmap"
$SUDO rm "$BIN/jps"
$SUDO rm "$BIN/jrunscript"
$SUDO rm "$BIN/jsadebugd"
$SUDO rm "$BIN/jstack"
$SUDO rm "$BIN/jstat"
$SUDO rm "$BIN/jstatd"
$SUDO rm "$BIN/keytool"
$SUDO rm "$BIN/native2ascii"
$SUDO rm "$BIN/orbd"
$SUDO rm "$BIN/pack200"
$SUDO rm "$BIN/policytool"
$SUDO rm "$BIN/rmic"
$SUDO rm "$BIN/rmid"
$SUDO rm "$BIN/rmiregistry"
$SUDO rm "$BIN/schemagen"
$SUDO rm "$BIN/serialver"
$SUDO rm "$BIN/servertool"
$SUDO rm "$BIN/tnameserv"
$SUDO rm "$BIN/unpack200"
$SUDO rm "$BIN/wsgen"
$SUDO rm "$BIN/wsimport"
$SUDO rm "$BIN/xjc"
$SUDO ln -sf "$JAVA/bin/appletviewer" "$BIN/appletviewer"
$SUDO ln -sf "$JAVA/bin/apt" "$BIN/apt"
$SUDO ln -sf "$JAVA/bin/extcheck" "$BIN/extcheck"
$SUDO ln -sf "$JAVA/bin/idlj" "$BIN/idlj"
$SUDO ln -sf "$JAVA/bin/jar" "$BIN/jar"
$SUDO ln -sf "$JAVA/bin/jarsigner" "$BIN/jarsigner"
$SUDO ln -sf "$JAVA/jre/bin/java" "$BIN/java"
$SUDO ln -sf "$JAVA/bin/javac" "$BIN/javac"
$SUDO ln -sf "$JAVA/bin/javadoc" "$BIN/javadoc"
$SUDO ln -sf "$JAVA/bin/javah" "$BIN/javah"
$SUDO ln -sf "$JAVA/bin/javap" "$BIN/javap"
$SUDO ln -sf "$JAVA/bin/jcmd" "$BIN/jcmd"
$SUDO ln -sf "$JAVA/bin/jconsole" "$BIN/jconsole"
$SUDO ln -sf "$JAVA/bin/jdb" "$BIN/jdb"
$SUDO ln -sf "$JAVA/bin/jhat" "$BIN/jhat"
$SUDO ln -sf "$JAVA/bin/jinfo" "$BIN/jinfo"
$SUDO ln -sf "$JAVA/bin/jmap" "$BIN/jmap"
$SUDO ln -sf "$JAVA/bin/jps" "$BIN/jps"
$SUDO ln -sf "$JAVA/bin/jrunscript" "$BIN/jrunscript"
$SUDO ln -sf "$JAVA/bin/jsadebugd" "$BIN/jsadebugd"
$SUDO ln -sf "$JAVA/bin/jstack" "$BIN/jstack"
$SUDO ln -sf "$JAVA/bin/jstat" "$BIN/jstat"
$SUDO ln -sf "$JAVA/bin/jstatd" "$BIN/jstatd"
$SUDO ln -sf "$JAVA/jre/bin/keytool" "$BIN/keytool"
$SUDO ln -sf "$JAVA/bin/native2ascii" "$BIN/native2ascii"
$SUDO ln -sf "$JAVA/jre/bin/orbd" "$BIN/orbd"
$SUDO ln -sf "$JAVA/jre/bin/pack200" "$BIN/pack200"
$SUDO ln -sf "$JAVA/jre/bin/policytool" "$BIN/policytool"
$SUDO ln -sf "$JAVA/bin/rmic" "$BIN/rmic"
$SUDO ln -sf "$JAVA/jre/bin/rmid" "$BIN/rmid"
$SUDO ln -sf "$JAVA/jre/bin/rmiregistry" "$BIN/rmiregistry"
$SUDO ln -sf "$JAVA/bin/schemagen" "$BIN/schemagen"
$SUDO ln -sf "$JAVA/bin/serialver" "$BIN/serialver"
$SUDO ln -sf "$JAVA/jre/bin/servertool" "$BIN/servertool"
$SUDO ln -sf "$JAVA/jre/bin/tnameserv" "$BIN/tnameserv"
$SUDO ln -sf "$JAVA/jre/bin/unpack200" "$BIN/unpack200"
$SUDO ln -sf "$JAVA/bin/wsgen" "$BIN/wsgen"
$SUDO ln -sf "$JAVA/bin/wsimport" "$BIN/wsimport"
$SUDO ln -sf "$JAVA/bin/xjc" "$BIN/xjc"
}
if [[ $EUID -ne 0 ]]; then
SUDO='sudo'
# echo "$SCRIPT_NAME debe ejecutarse como ROOT!"
# exit 1
fi
case $JAVA_HOME in
"$ORACLE_PATH" )
echo "Oracle SDK detectado cambiando a OpenJDK"
JAVA_PATH="$OPEN_PATH"
;;
"$OPEN_PATH")
echo "OpenJDK detectado cambiando a Oracle JDK"
JAVA_PATH="$ORACLE_PATH"
;;
*)
echo -e "No se encontro la variable \$JAVA_HOME, \nsi ejecuto este script con sudo ejecute 'sudo -E env $(basename $0)'"
;;
esac
set_binaries "$JAVA_PATH" "/usr/bin"
set_profile_files
set_java_home
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment