一个部署在linux环境的Java企业应用后台经常会在大半夜运行很多定时的任务,本篇文章总结下如何使用shell脚本调用Java程序,以备忘。
1. setupenv.sh
export APP_HOME=`pwd`
if [ -z "$JAVA_HOME" ] ; then
JAVA=`which java`
if [ -z "$JAVA" ] ; then
echo "Cannot find JAVA. Please set your PATH."
exit 1
fi
JAVA_BIN=`dirname $JAVA`
JAVA_HOME=$JAVA_BIN/..
fi
PATH_SEPARATOR=':'
if [ $OSTYPE = "cygwin32" ] ; then
PATH_SEPARATOR=';'
fi
if [ $OSTYPE = "cygwin" ] ; then
PATH_SEPARATOR=';'
fi
JAVA=$JAVA_HOME/bin/java
CLASSPATH=$JAVA_HOME/lib/tools.jar
CLASSPATH=`echo ${APP_HOME}/lib/*.jar | tr ' ' ${PATH_SEPARATOR}`${PATH_SEPARATOR}${CLASSPATH}
CLASSPATH=`echo ${APP_HOME}/lib/*.zip | tr ' ' ${PATH_SEPARATOR}`${PATH_SEPARATOR}${CLASSPATH}
CLASSPATH=`echo ${ANT_HOME}/lib/*.jar | tr ' ' ${PATH_SEPARATOR}`${PATH_SEPARATOR}${CLASSPATH}
CLASSPATH=`echo ${ANT_HOME}/lib/*.zip | tr ' ' ${PATH_SEPARATOR}`${PATH_SEPARATOR}${CLASSPATH}
CLASSPATH=${APP_HOME}/build/classes${PATH_SEPARATOR}${CLASSPATH}
export CLASSPATH
### load other variables from profile
source /etc/profile #set all env
2. app.sh
#!/bin/sh
# -----------------------------------------------------------------------------
# app.sh - Script to run applications
#
# Environment Variable Prequisites
#
# APP_HOME (Optional) May point at your APP "build" directory.
# If not present, the current w