1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
#!/bin/bash
# Having any sort of classpath causes massive breakage, with Kaffe at least.
unset CLASSPATH; export CLASSPATH
# Allow the user to specify their own Java home, we check for it later.
#unset JAVA_HOME; export JAVA_HOME
CMDLINEARGS=""
VMARGS=""
INSTALL="/usr/lib/eclipse"
STARTUP="/usr/lib/eclipse/startup.jar"
if [ -x /usr/bin/zenity ]; then
DIALOG=/usr/bin/zenity
elif [ -x /usr/bin/kdialog ]; then
DIALOG=/usr/bin/kdialog
elif [ -x /usr/bin/xdialog ]; then
DIALOG=/usr/bin/xdialog
else
DIALOG=echo
fi
# Make sure this directory exists.
if [ ! -d ~/.eclipse ]; then
mkdir ~/.eclipse > /dev/null 2>&1
if [ $? -ne 0 ]; then
$DIALOG \
--error \
--title="Could not launch Eclipse Platform" \
--text="Could not create settings directory at ~/.eclipse."
fi
fi
# Just in case Eclipse tries to put something in the home directory.
cd ~
# Load default settings from the user's configuration file.
if [ -f ~/.eclipse/eclipserc ]; then
. ~/.eclipse/eclipserc
fi
# Process the command line options. These override the eclipserc file, so we do
# them after parsing that file.
while [ "$1" ]; do
if [ "$1" = "-h" -o "$1" = "--help" ]; then
echo "Eclipse Starter Script"
echo "Usage:"
echo "eclipse [options [value]]"
echo "See eclipse(1) for more information."
echo ""
echo "Also see ~/.eclipse/eclipserc, which provides some default values"
exit 0
elif [ "$1" = "-vm" ]; then
shift
unset JAVA_HOME
JAVACMD="$1"
shift
elif [ "$1" = "-install" ]; then
shift
INSTALL="$1"
shift
elif [ "$1" = "-startup" ]; then
shift
STARTUP="$1"
shift
elif [ "$1" = "-vmargs" ]; then
shift
while [ "$1" ]; do
VMARGS="${VMARGS} $1"
shift
done
else
CMDLINEARGS="${CMDLINEARGS} $1"
shift
fi
done
# If the user has specified a custom JAVA, we check it for validity.
# JAVA defines the virtual machine that Eclipse will use to launch itself.
if [ -n "${JAVA_HOME}" ]; then
echo "using specified vm: ${JAVA_HOME}"
if [ ! -x "${JAVA_HOME}/bin/java" ]; then
$DIALOG \
--error \
--title="Could not launch Eclipse Platform" \
--text="The custom VM you have chosen is not a valid executable."
exit 1
fi
fi
# If the user has not set JAVA_HOME, cycle through our list of compatible VM's
# and pick the first one that exists.
if [ -z "${JAVA_HOME}" -a ! -n "${JAVACMD}" ]; then
echo "searching for compatible vm..."
javahomelist=`cat /etc/eclipse/java_home | grep -v '^#' | grep -v '^$' | while read line ; do echo -n $line ; echo -n ":" ; done`
OFS="$IFS"
IFS=":"
for JAVA_HOME in $javahomelist ; do
echo -n " testing ${JAVA_HOME}..."
if [ -x "${JAVA_HOME}/bin/java" ]; then
export JAVA_HOME
echo "found"
break
else
echo "not found"
fi
done
IFS="$OFS"
fi
# If we don't have a JAVA_HOME yet, we're doomed.
if [ -z "${JAVA_HOME}" -a ! -n "${JAVACMD}" ]; then
$DIALOG \
--error \
--title="Could not launch Eclipse Platform" \
--text="A suitable Java Virtual Machine for running the Eclipse Platform could not be located."
exit 1
fi
# Set JAVACMD from JAVA_HOME
if [ -n "${JAVA_HOME}" -a -z "${JAVACMD}" ]; then
JAVACMD="$JAVA_HOME/bin/java"
fi
case $CLASSPATH in
*/usr/lib/eclipse/startup.jar*) ;;
*) CLASSPATH=$CLASSPATH:/usr/lib/eclipse/startup.jar
esac
export CLASSPATH
# Do the actual launch of the Eclipse Code Formatter with the selected VM.
exec $JAVA_HOME/bin/java \
org.eclipse.core.launcher.Main \
-application org.eclipse.jdt.core.JavaCodeFormatter \
${1+"$@"} \
-vmargs -Djava.library.path=/usr/lib/jni \
-Dgnu.gcj.precompiled.db.path=/var/lib/gcj-4.1/classmap.db \
-Dgnu.gcj.runtime.VMClassLoader.library_control=never \
-Dosgi.locking=none ${VMARGS}
|