#!/bin/bash # select a java version # # Notes: # - JDK's and JRE's are installed into /usr/lib/java/$name-$version # - java-config creates a symlink called /usr/lib/java/home to the sdk/re you # select # # Example: # $ java-config -l # jdk-1.3 # jdk-1.4 # jdk-1.4.2 # $ java-config -s jdk-1.4.2 # $ java-config -l # jdk-1.3 # jdk-1.4 # jdk-1.4.2 * # JAVA_BASE=/usr/lib/java JAVA_BASE=/tmp/java # temporary JAVA_HOME=$JAVA_BASE/home usage() { name=$(basename $0) echo "Usage: " echo " $name -l: list available sdk/re's" echo " $name -s : select " exit -2 } if [ -e $JAVA_HOME ] && [ ! -L $JAVA_HOME ]; then echo "$JAVA_HOME is not a symbolic link; exiting" exit -1 fi case $1 in "-l") if [ -L $JAVA_HOME ]; then selected=$(ls -l $JAVA_HOME|sed -e 's|.*/||g') fi find $JAVA_BASE -maxdepth 1 -mindepth 1 -type d| sed -e 's|.*/||g'|\ sed -e "s|^$selected$|$selected \*|g" ;; "-s") if [ "$2" = "" ]; then usage fi if [ ! -d $JAVA_BASE/$2 ]; then echo "$JAVA_BASE/$2 does not exist; exiting" exit -3 fi rm -f $JAVA_HOME ln -s $JAVA_BASE/$2 $JAVA_HOME ;; *) usage ;; esac