101 lines
3.2 KiB
Bash
101 lines
3.2 KiB
Bash
#!/bin/sh
|
|
# -----------------------------------------------------------------------------
|
|
# Set CLASSPATH and Java options
|
|
#
|
|
# $Id: setclasspath.sh 505244 2007-02-09 10:33:43Z jfclere $
|
|
# -----------------------------------------------------------------------------
|
|
|
|
# First clear out the user classpath
|
|
CLASSPATH=
|
|
|
|
# Make sure prerequisite environment variables are set
|
|
if [ -z "$JAVA_HOME" -a -z "$JRE_HOME" ]; then
|
|
# Bugzilla 37284
|
|
if $darwin && [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home" ]; then
|
|
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home"
|
|
else
|
|
echo "Neither the JAVA_HOME nor the JRE_HOME environment variable is defined"
|
|
echo "At least one of these environment variable is needed to run this program"
|
|
exit 1
|
|
fi
|
|
fi
|
|
if [ -z "$JAVA_HOME" -a "$1" = "debug" ]; then
|
|
echo "JAVA_HOME should point to a JDK in order to run in debug mode."
|
|
exit 1
|
|
fi
|
|
if [ -z "$JRE_HOME" ]; then
|
|
JRE_HOME="$JAVA_HOME"
|
|
fi
|
|
|
|
# If we're running under jdb, we need a full jdk.
|
|
if [ "$1" = "debug" -o "$1" = "javac" ] ; then
|
|
if [ "$os400" = "true" ]; then
|
|
if [ ! -x "$JAVA_HOME"/bin/java -o ! -x "$JAVA_HOME"/bin/javac ]; then
|
|
echo "The JAVA_HOME environment variable is not defined correctly"
|
|
echo "This environment variable is needed to run this program"
|
|
echo "NB: JAVA_HOME should point to a JDK not a JRE"
|
|
exit 1
|
|
fi
|
|
else
|
|
if [ ! -x "$JAVA_HOME"/bin/java -o ! -x "$JAVA_HOME"/bin/jdb -o ! -x "$JAVA_HOME"/bin/javac ]; then
|
|
echo "The JAVA_HOME environment variable is not defined correctly"
|
|
echo "This environment variable is needed to run this program"
|
|
echo "NB: JAVA_HOME should point to a JDK not a JRE"
|
|
exit 1
|
|
fi
|
|
fi
|
|
fi
|
|
if [ -z "$BASEDIR" ]; then
|
|
echo "The BASEDIR environment variable is not defined"
|
|
echo "This environment variable is needed to run this program"
|
|
exit 1
|
|
fi
|
|
if [ ! -x "$BASEDIR"/bin/setclasspath.sh ]; then
|
|
if $os400; then
|
|
# -x will Only work on the os400 if the files are:
|
|
# 1. owned by the user
|
|
# 2. owned by the PRIMARY group of the user
|
|
# this will not work if the user belongs in secondary groups
|
|
eval
|
|
else
|
|
echo "The BASEDIR environment variable is not defined correctly"
|
|
echo "This environment variable is needed to run this program"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Set the default -Djava.endorsed.dirs argument
|
|
JAVA_ENDORSED_DIRS="$BASEDIR"/endorsed
|
|
|
|
# Set standard CLASSPATH
|
|
if [ "$1" = "javac" ] ; then
|
|
if [ ! -f "$JAVA_HOME"/lib/tools.jar ]; then
|
|
echo "Can't find tools.jar in JAVA_HOME"
|
|
echo "Need a JDK to run javac"
|
|
exit 1
|
|
fi
|
|
fi
|
|
if [ "$1" = "debug" -o "$1" = "javac" ] ; then
|
|
if [ -f "$JAVA_HOME"/lib/tools.jar ]; then
|
|
CLASSPATH="$JAVA_HOME"/lib/tools.jar
|
|
fi
|
|
fi
|
|
|
|
# OSX hack to CLASSPATH
|
|
JIKESPATH=
|
|
if [ `uname -s` = "Darwin" ]; then
|
|
OSXHACK="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes"
|
|
if [ -d "$OSXHACK" ]; then
|
|
for i in "$OSXHACK"/*.jar; do
|
|
JIKESPATH="$JIKESPATH":"$i"
|
|
done
|
|
fi
|
|
fi
|
|
|
|
# Set standard commands for invoking Java.
|
|
_RUNJAVA="$JRE_HOME"/bin/java
|
|
if [ "$os400" != "true" ]; then
|
|
_RUNJDB="$JAVA_HOME"/bin/jdb
|
|
fi
|
|
_RUNJAVAC="$JAVA_HOME"/bin/javac
|