#!/bin/sh ######################################################################### # # FILE : javarun # DATE : 2.8.1999 # LAST CHANGE : 31.10.2001 # AUTHOR : Patrick Meier / patrick.meier@gmx.net # DESCRIPTION : start a java application which is defined in the # project.properties file. # # Copyrigth (C) 2001 by Patrick Meier, Switzerland # ######################################################################### PN=`basename "$0"` ######################################################################### # defines all commands ######################################################################### ECHO="echo" AWK="awk" SED="sed" FIND="find" GREP="grep" CD="cd" RM="rm" RMDIR="rm -rf" MKDIR="mkdir" MV="mv" JAR="jar" JAVAC="javac" JAVA="java" if( eval "more" 2>/dev/null ) then MORE="more" else MORE="less" fi ######################################################################### # getValue: read a key/value from a file ######################################################################### getValue() { value="`cat $1 | $AWK -F"=" '{if("'$2'"==$1) {print $2}}'`" if( eval echo $value ) then : else echo "ERROR!!!" exit fi } ######################################################################### # doCommand ######################################################################### doCommand() { $@ > $LOGNAME 2>&1 if [ -z "`cat $LOGNAME`" ] then $RM $LOGNAME else $ECHO "" $ECHO "==============================================================================" $ECHO "> failure(s):" $ECHO "==============================================================================" $MORE $LOGNAME exit 1 fi } ######################################################################### # readConfiguration: get settings ######################################################################### readConfiguration() { CONFIGURATION="$1" APPLICATIONNAME="`getValue $CONFIGURATION APPLICATIONNAME`" LOGNAME="${APPLICATIONNAME##*.}.err" SOURCEHOME="`getValue $CONFIGURATION SRC_HOME | $SED "s/;/ /g;s/:/ /g" `" CLASSESPATH="`getValue $CONFIGURATION CLASSESPATH`" LIBHOME="`getValue $CONFIGURATION LIB_HOME | $SED "s/;/ /g;s/:/ /g" `" JARFILENAME="`getValue $CONFIGURATION JARFILENAME`" RUN_PREPARAMETER="`getValue $CONFIGURATION RUN_PREPARAMETER`" RUN_PARAMETER="`getValue $CONFIGURATION RUN_PARAMETER`" # read all libraries for i in $LIBHOME do LIBPATH="$LIBPATH `$FIND $i -name "*.jar" -print | $GREP -v CVS`" done export CLASSESPATH LIBPATH LOGNAME } ######################################################################### # create jar ######################################################################### createJar() { $ECHO "> creating jar file...." currentPATH=`pwd` $CD "$CLASSESPATH" $JAR -cvf $JARFILENAME $SOURCEHOME >/dev/null 2>&1 $MV $JARFILENAME $currentPATH $CD "$currentPATH" } ######################################################################### # Usage ######################################################################### Usage() { $ECHO "$PN - start a java application which is defined in the project.properties file." $ECHO "usage: $PN " $ECHO "Possible options:" $ECHO "==>normal java options:" $ECHO " -jar start class from a jar-archive" $ECHO " -cp -classpath Specify where to find user class files" $ECHO " -D = set a system property" $ECHO " -verbose:{class|gc|jni} enable verbose output" $ECHO " -version print product version and exit" $ECHO " -showversion print product version and continue" $ECHO " -? -help --help This page" $ECHO "" $ECHO "==>special options:" $ECHO " --p Defines another name for the project filename" $ECHO " --java Defines another command to start files" $ECHO " --jar Defines another command to build a jar file" $ECHO " --verbose Show java call" $ECHO " -create_jar Create a jar file" } ######################################################################### # main ######################################################################### PROJECTCONFIGURATION="project.properties" LOGNAME="javacompile.err" JARFILENAME="" PROGPARAMETER="" SHOWCALL="" # test configuration file if [ -f "$PROJECTCONFIGURATION" ] then $ECHO "> read project file $PROJECTCONFIGURATION...." readConfiguration $PROJECTCONFIGURATION USEPROJECTCONFIGURATION="YES" else USEPROJECTCONFIGURATION="NO" fi # read parameters while [ $# -gt 0 ] do PARAM=$1 shift case "$PARAM" in -?) Usage; exit;; -help) Usage; exit;; --help) Usage; exit;; --p) if [ $# -gt 0 ] then if [ -f "$1" ] then PROJECTCONFIGURATION="$1" $ECHO "> read project file $PROJECTCONFIGURATION...." readConfiguration $PROJECTCONFIGURATION USEPROJECTCONFIGURATION="YES" shift fi fi;; --java) if [ $# -gt 0 ] then JAVA="$1" shift fi;; --jar) if [ $# -gt 0 ] then JAR="$1" shift fi;; -create_jar) if [ $# -gt 0 ] then JARFILENAME="$1" shift fi;; # javac - options -jar) RUN_PREPARAMETER="$RUN_PREPARAMETER -jar";; -verbose:class) RUN_PARAMETER="$RUN_PARAMETER -verbose:class";; -verbose:gc) RUN_PARAMETER="$RUN_PARAMETER -verbose:gc";; -verbose:jni) RUN_PARAMETER="$RUN_PARAMETER -verbose:jni";; -version) RUN_PARAMETER="$RUN_PARAMETER -version";; -showversion) RUN_PARAMETER="$RUN_PARAMETER -showversion";; -D) if [ $# -gt 0 ] then RUN_PARAMETER="$RUN_PARAMETER -D $1" shift fi;; -cp) if [ $# -gt 0 ] then LIBPATH="$LIBPATH $1" shift fi;; -classpath) if [ $# -gt 0 ] then LIBPATH="$LIBPATH $1" shift fi;; --verbose) SHOWCALL="YES";; *) PROGPARAMETER="$PROGPARAMETER $PARAM" #echo $PROGPARAMETER;; esac done # define the libpath if [ "$OS" = "Windows_NT" ] then LIBPATH="`$ECHO $LIBPATH | sed 's/ /;/g'`" CLASSSEP=";" else LIBPATH="`$ECHO $LIBPATH | sed 's/ /:/g'`" CLASSSEP=":" fi # build jar if [ -n "$JARFILENAME" ] then createJar else if [ -z "$APPLICATIONNAME" ] then APPLICATIONNAME="$PROGPARAMETER" fi if [ "$USEPROJECTCONFIGURATION" = "YES" ] then RUN_PARAMETER=$PROGPARAMETER CPATH="${CLASSPATH}${CLASSSEP}${LIBPATH}${CLASSSEP}${CLASSESPATH}" if [ -n "$SHOWCALL" ] then echo $JAVA -classpath "$CPATH" $RUN_PREPARAMETER "$APPLICATIONNAME" $RUN_PARAMETER fi $JAVA -classpath "$CPATH" $RUN_PREPARAMETER "$APPLICATIONNAME" $RUN_PARAMETER #read kk else echo "> nothing to do!" fi fi ######################################################################### # EOF #########################################################################