-
Notifications
You must be signed in to change notification settings - Fork 33
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Issue #82. Configure classpath expansion in launcher scripts
- Loading branch information
1 parent
22d163b
commit 8df9e14
Showing
3 changed files
with
209 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
#!/usr/bin/env sh | ||
@LICENSE_HEADER@ | ||
|
||
# resolve links - $0 may be a softlink | ||
PRG="$0" | ||
|
||
while [ -h "$PRG" ]; do | ||
ls=`ls -ld "$PRG"` | ||
link=`expr "$ls" : '.*-> \(.*\)$'` | ||
if expr "$link" : '/.*' > /dev/null; then | ||
PRG="$link" | ||
else | ||
PRG=`dirname "$PRG"`/"$link" | ||
fi | ||
done | ||
|
||
PRGDIR=`dirname "$PRG"` | ||
BASEDIR=`cd "$PRGDIR/.." >/dev/null; pwd` | ||
|
||
# Reset the REPO variable. If you need to influence this use the environment setup file. | ||
REPO= | ||
@ENV_SETUP@ | ||
|
||
# OS specific support. $var _must_ be set to either true or false. | ||
cygwin=false; | ||
darwin=false; | ||
case "`uname`" in | ||
CYGWIN*) cygwin=true ;; | ||
Darwin*) darwin=true | ||
if [ -z "$JAVA_VERSION" ] ; then | ||
JAVA_VERSION="CurrentJDK" | ||
else | ||
echo "Using Java version: $JAVA_VERSION" | ||
fi | ||
if [ -z "$JAVA_HOME" ]; then | ||
if [ -x "/usr/libexec/java_home" ]; then | ||
JAVA_HOME=`/usr/libexec/java_home` | ||
else | ||
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/${JAVA_VERSION}/Home | ||
fi | ||
fi | ||
;; | ||
esac | ||
|
||
if [ -z "$JAVA_HOME" ] ; then | ||
if [ -r /etc/gentoo-release ] ; then | ||
JAVA_HOME=`java-config --jre-home` | ||
fi | ||
fi | ||
|
||
# For Cygwin, ensure paths are in UNIX format before anything is touched | ||
if $cygwin ; then | ||
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` | ||
[ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"` | ||
fi | ||
|
||
# If a specific java binary isn't specified search for the standard 'java' binary | ||
if [ -z "$JAVACMD" ] ; then | ||
if [ -n "$JAVA_HOME" ] ; then | ||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then | ||
# IBM's JDK on AIX uses strange locations for the executables | ||
JAVACMD="$JAVA_HOME/jre/sh/java" | ||
else | ||
JAVACMD="$JAVA_HOME/bin/java" | ||
fi | ||
else | ||
JAVACMD=`which java` | ||
fi | ||
fi | ||
|
||
if [ ! -x "$JAVACMD" ] ; then | ||
echo "Error: JAVA_HOME is not defined correctly." 1>&2 | ||
echo " We cannot execute $JAVACMD" 1>&2 | ||
exit 1 | ||
fi | ||
|
||
if [ -z "$REPO" ] | ||
then | ||
REPO="$BASEDIR"/@REPO@ | ||
fi | ||
|
||
# CLASSPATH=@CLASSPATH@ | ||
CLASSPATH="$REPO/*" | ||
|
||
ENDORSED_DIR=@ENDORSED_DIR@ | ||
if [ -n "$ENDORSED_DIR" ] ; then | ||
CLASSPATH=$BASEDIR/$ENDORSED_DIR/*:$CLASSPATH | ||
fi | ||
|
||
if [ -n "$CLASSPATH_PREFIX" ] ; then | ||
CLASSPATH=$CLASSPATH_PREFIX:$CLASSPATH | ||
fi | ||
|
||
# For Cygwin, switch paths to Windows format before running java | ||
if $cygwin; then | ||
[ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --windows "$CLASSPATH"` | ||
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` | ||
[ -n "$HOME" ] && HOME=`cygpath --path --windows "$HOME"` | ||
[ -n "$BASEDIR" ] && BASEDIR=`cygpath --path --windows "$BASEDIR"` | ||
[ -n "$REPO" ] && REPO=`cygpath --path --windows "$REPO"` | ||
fi | ||
|
||
exec "$JAVACMD" $JAVA_OPTS @EXTRA_JVM_ARGUMENTS@ \ | ||
-classpath "$CLASSPATH" \ | ||
-Dapp.name="@APP_NAME@" \ | ||
-Dapp.pid="$$" \ | ||
-Dapp.repo="$REPO" \ | ||
-Dapp.home="$BASEDIR" \ | ||
-Dbasedir="$BASEDIR" \ | ||
@MAINCLASS@ \ | ||
@APP_ARGUMENTS@"$@"@UNIX_BACKGROUND@ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
#LICENSE_HEADER# | ||
@echo off | ||
|
||
set ERROR_CODE=0 | ||
|
||
:init | ||
@REM Decide how to startup depending on the version of windows | ||
|
||
@REM -- Win98ME | ||
if NOT "%OS%"=="Windows_NT" goto Win9xArg | ||
|
||
@REM set local scope for the variables with windows NT shell | ||
if "%OS%"=="Windows_NT" @setlocal | ||
|
||
@REM -- 4NT shell | ||
if "%eval[2+2]" == "4" goto 4NTArgs | ||
|
||
@REM -- Regular WinNT shell | ||
set CMD_LINE_ARGS=%* | ||
goto WinNTGetScriptDir | ||
|
||
@REM The 4NT Shell from jp software | ||
:4NTArgs | ||
set CMD_LINE_ARGS=%$ | ||
goto WinNTGetScriptDir | ||
|
||
:Win9xArg | ||
@REM Slurp the command line arguments. This loop allows for an unlimited number | ||
@REM of arguments (up to the command line limit, anyway). | ||
set CMD_LINE_ARGS= | ||
:Win9xApp | ||
if %1a==a goto Win9xGetScriptDir | ||
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1 | ||
shift | ||
goto Win9xApp | ||
|
||
:Win9xGetScriptDir | ||
set SAVEDIR=%CD% | ||
%0\ | ||
cd %0\..\.. | ||
set BASEDIR=%CD% | ||
cd %SAVEDIR% | ||
set SAVE_DIR= | ||
goto repoSetup | ||
|
||
:WinNTGetScriptDir | ||
for %%i in ("%~dp0..") do set "BASEDIR=%%~fi" | ||
|
||
:repoSetup | ||
set REPO= | ||
#ENV_SETUP# | ||
|
||
if "%JAVACMD%"=="" set JAVACMD=#JAVA_BINARY# | ||
|
||
if "%REPO%"=="" set REPO=%BASEDIR%\#REPO# | ||
|
||
@REM set CLASSPATH=#CLASSPATH# | ||
set CLASSPATH="%REPO%\*" | ||
|
||
set ENDORSED_DIR=#ENDORSED_DIR# | ||
if NOT "%ENDORSED_DIR%" == "" set CLASSPATH="%BASEDIR%"\%ENDORSED_DIR%\*;%CLASSPATH% | ||
|
||
if NOT "%CLASSPATH_PREFIX%" == "" set CLASSPATH=%CLASSPATH_PREFIX%;%CLASSPATH% | ||
|
||
@REM Reaching here means variables are defined and arguments have been captured | ||
:endInit | ||
|
||
"%JAVACMD%" %JAVA_OPTS% #EXTRA_JVM_ARGUMENTS# -classpath %CLASSPATH% -Dapp.name="#APP_NAME#" -Dapp.repo="%REPO%" -Dapp.home="%BASEDIR%" -Dbasedir="%BASEDIR%" #MAINCLASS# #APP_ARGUMENTS#%CMD_LINE_ARGS% | ||
if %ERRORLEVEL% NEQ 0 goto error | ||
goto end | ||
|
||
:error | ||
if "%OS%"=="Windows_NT" @endlocal | ||
set ERROR_CODE=%ERRORLEVEL% | ||
|
||
:end | ||
@REM set local scope for the variables with windows NT shell | ||
if "%OS%"=="Windows_NT" goto endNT | ||
|
||
@REM For old DOS remove the set variables from ENV - we assume they were not set | ||
@REM before we started - at least we don't leave any baggage around | ||
set CMD_LINE_ARGS= | ||
goto postExec | ||
|
||
:endNT | ||
@REM If error code is set to 1 then the endlocal was done already in :error. | ||
if %ERROR_CODE% EQU 0 @endlocal | ||
|
||
|
||
:postExec | ||
|
||
if "%FORCE_EXIT_ON_ERROR%" == "on" ( | ||
if %ERROR_CODE% NEQ 0 exit %ERROR_CODE% | ||
) | ||
|
||
exit /B %ERROR_CODE% |