diff --git a/packaging/centos63/cloud-usage.rc b/packaging/centos63/cloud-usage.rc index 6c113cbd710..a03df5be5f6 100755 --- a/packaging/centos63/cloud-usage.rc +++ b/packaging/centos63/cloud-usage.rc @@ -46,15 +46,31 @@ USER=cloud unset OPTIONS [ -r /etc/sysconfig/default/"$SHORTNAME" ] && source /etc/sysconfig/default/"$SHORTNAME" -# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not defined in $DEFAULT) -JDK_DIRS="/usr/lib/jvm/java-7-openjdk /usr/lib/jvm/java-7-openjdk-i386 /usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/java-7-sun /usr/lib/jvm/jre-1.7.0 /usr/lib/j2sdk1.5-sun /usr/lib/jre-openjdk" +setJavaHome() { + # use $JAVA_HOME if defined + if [ -n "$JAVA_HOME" ] ; then + return + fi -for jdir in $JDK_DIRS; do - if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then - JAVA_HOME="$jdir" - fi -done -export JAVA_HOME + # try javac first + java=$(which javac 2>/dev/null || :) + + # try java if javac is not found + if [ -z "$java" ] ; then + java=$(which java 2>/dev/null || :) + fi + + if [ -n "$java" ] ; then + JAVA_HOME=$(dirname $(dirname $(readlink -e $java))) + export JAVA_HOME + return + fi + + # didnt find java home. exiting with error + exit 1 +} + +setJavaHome SCP="" DCP="" diff --git a/packaging/debian/init/cloud-usage b/packaging/debian/init/cloud-usage index fcede4fc139..9b27864e161 100755 --- a/packaging/debian/init/cloud-usage +++ b/packaging/debian/init/cloud-usage @@ -62,17 +62,6 @@ setJavaHome() { return fi - # If everything has failed, try hardcoded paths - # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not defined in $DEFAULT) - JDK_DIRS="/usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/java-7-openjdk-i386 /usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-7-openjdk /usr/lib/jvm/java-7-sun" - for jdir in $JDK_DIRS; do - if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then - JAVA_HOME="$jdir" - export JAVA_HOME - return - fi - done - # didnt find java home. exiting with error exit 1 }