1+ #! /usr/bin/env bash
2+
3+ # OS specific support (must be 'true' or 'false').
4+ cygwin=false;
5+ darwin=false;
6+ case " ` uname` " in
7+ CYGWIN* )
8+ cygwin=true
9+ ;;
10+
11+ Darwin* )
12+ darwin=true
13+ ;;
14+ esac
15+
16+ # For Cygwin, ensure paths are in UNIX format before anything is touched.
17+ if $cygwin ; then
18+ [ -n " $JAVA_HOME " ] && JAVA_HOME=` cygpath --unix " $JAVA_HOME " `
19+ fi
20+
21+ # Attempt to find JAVA_HOME if not already set
22+ if [ -z " ${JAVA_HOME} " ]; then
23+ if $darwin ; then
24+ [ -z " $JAVA_HOME " -a -f " /usr/libexec/java_home" ] && export JAVA_HOME=` /usr/libexec/java_home`
25+ [ -z " $JAVA_HOME " -a -d " /Library/Java/Home" ] && export JAVA_HOME=" /Library/Java/Home"
26+ [ -z " $JAVA_HOME " -a -d " /System/Library/Frameworks/JavaVM.framework/Home" ] && export JAVA_HOME=" /System/Library/Frameworks/JavaVM.framework/Home"
27+ else
28+ javaExecutable=" ` which javac` "
29+ [ -z " $javaExecutable " -o " ` expr \" $javaExecutable \" : ' \([^ ]*\)' ` " = " no" ] && echo " JAVA_HOME not set and cannot find javac to deduce location, please set JAVA_HOME." && exit 1
30+ # readlink(1) is not available as standard on Solaris 10.
31+ readLink=` which readlink`
32+ [ ` expr " $readLink " : ' \([^ ]*\)' ` = " no" ] && echo " JAVA_HOME not set and readlink not available, please set JAVA_HOME." && exit 1
33+ javaExecutable=" ` readlink -f \" $javaExecutable \" ` "
34+ javaHome=" ` dirname \" $javaExecutable \" ` "
35+ javaHome=` expr " $javaHome " : ' \(.*\)/bin' `
36+ JAVA_HOME=" $javaHome "
37+ export JAVA_HOME
38+ fi
39+ fi
40+
41+ # Sanity check that we have java
42+ if [ ! -f " ${JAVA_HOME} /bin/java" ]; then
43+ echo " "
44+ echo " ======================================================================================================"
45+ echo " Please ensure that your JAVA_HOME points to a valid Java SDK."
46+ echo " You are currently pointing to:"
47+ echo " "
48+ echo " ${JAVA_HOME} "
49+ echo " "
50+ echo " This does not seem to be valid. Please rectify and restart."
51+ echo " ======================================================================================================"
52+ echo " "
53+ exit 1
54+ fi
55+
56+ # Attempt to find TOOLS_HOME if not already set
57+ if [ -z " ${TOOLS_HOME} " ]; then
58+ # Resolve links: $0 may be a link
59+ PRG=" $0 "
60+ # Need this for relative symlinks.
61+ while [ -h " $PRG " ] ; do
62+ ls=` ls -ld " $PRG " `
63+ link=` expr " $ls " : ' .*-> \(.*\)$' `
64+ if expr " $link " : ' /.*' > /dev/null; then
65+ PRG=" $link "
66+ else
67+ PRG=` dirname " $PRG " ` " /$link "
68+ fi
69+ done
70+ SAVED=" ` pwd` "
71+ cd " ` dirname \" $PRG \" ` /../" >& -
72+ export TOOLS_HOME=" ` pwd -P` "
73+ cd " $SAVED " >& -
74+ fi
75+
76+ if [ ! -d " ${TOOLS_HOME} " ]; then
77+ echo " Not a directory: TOOLS_HOME=${TOOLS_HOME} "
78+ echo " Please rectify and restart."
79+ exit 2
80+ fi
81+
82+ CLASSPATH=.:${TOOLS_HOME} /bin
83+ if [ -d ${TOOLS_HOME} /ext ]; then
84+ CLASSPATH=$CLASSPATH :${TOOLS_HOME} /ext
85+ fi
86+ for f in ${TOOLS_HOME} /lib/* ; do
87+ CLASSPATH=$CLASSPATH :$f
88+ done
89+
90+ if $cygwin ; then
91+ TOOLS_HOME=` cygpath --path --mixed " $TOOLS_HOME " `
92+ CLASSPATH=` cygpath --path --mixed " $CLASSPATH " `
93+ fi
94+
95+ " ${JAVA_HOME} /bin/java" ${JAVA_OPTS} -cp " $CLASSPATH " " $@ "
0 commit comments