Created
July 25, 2013 14:34
-
-
Save rkmax/6080298 to your computer and use it in GitHub Desktop.
Switch between Java Installations
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
| echo export JAVA_HOME=$TMPL_PATH |
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
| echo export JAVA_HOME=\$\{JAVA_HOME:-$TMPL_PATH\} | |
| echo \# Enable this for non-reparenting window managers | |
| echo \#export _JAVA_AWT_WM_NONREPARENTING=1 |
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
| #!/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