root/main/trunk/greenstone2/findjava.sh @ 21377

Revision 20658, 6.4 KB (checked in by ak19, 10 years ago)

Allow the user to set the path to javahome. This was necessary for the binary release on MacBook? Pro running MacOS 10.4, since search4j gives a bus error on it.

  • Property svn:executable set to *
Line 
1# We will already be in the correct folder (GLI folder), which would
2# contain a compiled up search4j if this GLI is part of an installation.
3# If a search4j executable is not there, then it means this is an SVN checkout.
4# In such a case, it's up to the user checking things out to ensure JAVA_HOME
5# is set and moreover points to the correct version of the Java.
6
7# Function to check if any JAVA_HOME is set and if so, try using that
8function try_java {
9    MIN_DISPLAY_VERSION=${1};
10
11    if [ "x$JAVA_HOME" = "x" -o ! -f "$JAVA_HOME/bin/java" ]; then
12    no_java "$MIN_DISPLAY_VERSION"
13    return $?
14    else
15    # There is a JAVA_HOME already set, we're going to try using that
16    javapath="$JAVA_HOME/bin/java"
17    javahome="$JAVA_HOME"
18    # Print a warning that we're going to use whatever JAVA_HOME is set (fingers crossed)
19    if [ "x$gslang" = "x" -o "$gslang" = "en" ]; then
20        echo
21        echo "***************************************************************************"
22        echo "WARNING: "
23        echo "Java Runtime not bundled with this Greenstone installation."
24        echo "Using JAVA_HOME: $JAVA_HOME"
25        echo "(NOTE: this needs to be $MIN_DISPLAY_VERSION or higher.)"
26        echo "***************************************************************************"
27        echo
28    fi
29    echo "Java:"
30    echo $javapath
31    echo
32    return 0
33    fi
34}
35
36function no_java {
37    MIN_DISPLAY_VERSION=${1};
38
39    echo
40    if [ "$gslang" = "es" ]; then
41    echo "No se pudo localizar una versión apropiada de Java. Usted deberá "
42    echo "instalar un Ambiente de Ejecución Java (versión $MIN_DISPLAY_VERSION o superior) "
43    echo "antes de correr la Interfaz de la $PROGNAME."
44    elif [ "$gslang" = "fr" ]; then
45    echo "Une version adéquate de Java n'a pas pu être localisée."
46    echo "Vous devez installer un Java Runtime Environment (version $MIN_DISPLAY_VERSION ou"
47    echo "supérieur) avant de démarrer $PROGNAME."
48    echo "Si vous avez Java installé sur votre ordinateur veuillez vérifier la variable"
49    echo "d'environnement JAVA_HOME."
50    elif [ "$gslang" = "ru" ]; then
51    echo "îÅ ÕÄÁÌÏÓØ ÏÐÒÅÄÅÌÉÔØ ÍÅÓÔÏÎÁÈÏÖÄÅÎÉÅ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ ×ÅÒÓÉÉ Java."
52    echo "÷Ù ÄÏÌÖÎÙ ÕÓÔÁÎÏ×ÉÔØ Java Runtime Environment (×ÅÒÓÉÀ $MIN_DISPLAY_VERSION ÉÌÉ ×ÙÛÅ)"
53    echo "ÐÅÒÅÄ ××ÏÄÏÍ ÂÉÂÌÉÏÔÅÞÎÏÇÏ $PROGNAME."
54    else
55    echo "Failed to locate an appropriate version of Java. You must install a"
56    echo "Java Runtime Environment (version $MIN_DISPLAY_VERSION or greater) before running the"
57    echo "$PROGNAME."
58    echo "If you have Java intalled on your machine please set the environment variable JAVA_HOME."
59    fi
60    return 1
61}
62
63function set_java_exec {   
64    SEARCH4J_EXECUTABLE=${1};
65    MINIMUM_JAVA_VERSION=${2};
66    MIN_DISPLAY_VERSION=${3};
67
68    # Give search4j a hint to find Java depending on the platform
69    if [ $GSDLOS = linux ]; then
70    HINT=`cd "$GSDLHOME";pwd`/packages/jre
71    elif [ $GSDLOS = darwin ]; then
72    HINT=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
73        #/System/Library/Frameworks/JavaVM.framework/Home
74    fi 
75   
76    javapath="`"$SEARCH4J_EXECUTABLE" -e -p "$HINT" -m $MINIMUM_JAVA_VERSION`"
77    javahome="`"$SEARCH4J_EXECUTABLE" -p "$HINT" -m $MINIMUM_JAVA_VERSION`"
78
79    if [ "$?" != "0" ]; then
80   
81        OLDVER="`"$SEARCH4J_EXECUTABLE" -v -p "$HINT"`"
82   
83        if [ "$?" = "0" ]; then
84       
85            if [ "$gslang" = "es" ]; then
86                echo "La versión del Ambiente de Ejecución Java (JRE por sus siglas en "
87                echo "inglés) que usted tiene instalada es demasiado vieja para ejecutar "
88                echo "la Interfaz de la $PROGNAME. Por favor instale "
89                echo "una nueva versión del Ambiente de Ejecución Java (versión $MIN_DISPLAY_VERSION o "
90                echo "posterior) y ejecute nuevamente este guión."
91            elif [ "$gslang" = "fr" ]; then
92                echo "La version de Java Runtime Environment que vous avez installée est"
93                echo "trop vielle pour faire fonctionner $PROGNAME."
94                echo "Veuillez installer une nouvelle version du JRE (version $MIN_DISPLAY_VERSION ou plus"
95                echo "récente) et redémarrez le script."
96            elif [ "$gslang" = "ru" ]; then
97                echo "÷ÅÒÓÉÑ Java Runtime Environment, ËÏÔÏÒÕÀ ÷Ù ÕÓÔÁÎÏ×ÉÌÉ, ÏÞÅÎØ ÓÔÁÒÁ,"
98                echo "ÞÔÏÂÙ ÕÐÒÁ×ÌÑÔØ ÂÉÂÌÉÏÔÅÞÎÙÍ $PROGNAME. ðÏÖÁÌÕÊÓÔÁ, "
99                echo "ÕÓÔÁÎÏ×ÉÔÅ ÎÏ×ÕÀ ×ÅÒÓÉÀ JRE (×ÅÒÓÉÀ $MIN_DISPLAY_VERSION ÉÌÉ ÂÏÌÅÅ ÎÏ×ÕÀ) É"
100                echo "ÐÅÒÅÕÓÔÁÎÏ×ÉÔÅ ÜÔÏÔ ÓËÒÉÐÔ"
101            else
102                echo "The version of the Java Runtime Environment you have installed ($OLDVER)"
103                echo "is too old to run the $PROGNAME. Please install a new"
104                echo "version of the JRE (version $MIN_DISPLAY_VERSION or newer) and rerun this script."
105            fi
106            return 1
107       
108        else
109        no_java "$MIN_DISPLAY_VERSION"
110        return $?
111        fi
112   
113    fi
114    echo "Java:"
115    echo $javapath
116    echo
117    return 0
118}
119
120
121## ---- Check Java ----
122# Some users may set this line manually
123javahome=
124gslang=$1
125PROGNAME=$2
126MINIMUM_JAVA_VERSION=1.4.0_00
127MIN_DISPLAY_VERSION=1.4
128if [ "x$javahome" != "x" ]; then
129    JAVA_HOME=$javahome;
130    try_java "$MIN_DISPLAY_VERSION"
131    retval=$?
132    return $retval
133fi
134
135# sus out search4j
136# first look for compiled search4j executable inside the current folder
137if [ -x search4j ]; then
138    SEARCH4J_EXECUTABLE=search4j   
139elif [ -x "$GSDLHOME/bin/$GSDLOS/search4j" ]; then
140    SEARCH4J_EXECUTABLE="$GSDLHOME/bin/$GSDLOS/search4j"
141elif [ -x "$GSDL3SRCHOME/bin/$GSDLOS/search4j" ]; then
142    SEARCH4J_EXECUTABLE="$GSDL3SRCHOME/bin/search4j"
143elif [ -x "../bin/$GSDLOS/search4j" ]; then
144    SEARCH4J_EXECUTABLE=../bin/$GSDLOS/search4j
145elif [ -x "../bin/search4j" ]; then
146    SEARCH4J_EXECUTABLE=../bin/search4j
147else
148    echo "Couldn't determine the location of the search4j executable"
149    echo "If you are running Greenstone2"
150    echo "   * check GSDLHOME is set"
151    echo "   * check bin/$GSDLOS/search4j exists"
152    echo "   * check bin/$GSDLOS/search4j is executable"
153    echo "If you are running Greenstone3"
154    echo "   * check GSDL3SRCHOME is set"
155    echo "   * check bin/search4j exists"
156    echo "   * check bin/search4j is executable"
157    echo "   * try running 'ant compile-search4j'"
158fi
159
160# Now run set_java_exec with search4j if we found one, else try javahome
161if [ "x$SEARCH4J_EXECUTABLE" != "x" ]; then
162    set_java_exec "$SEARCH4J_EXECUTABLE" "$MINIMUM_JAVA_VERSION" "$MIN_DISPLAY_VERSION"
163    retval=$?
164else
165    try_java "$MIN_DISPLAY_VERSION"
166    retval=$?
167fi
168return $retval
Note: See TracBrowser for help on using the browser.