使用shell腳本啟動akka程序,參考于GearPump項目
準(zhǔn)備工作:
便于測試修改,直接運行編譯出的class來啟動。在根目錄下創(chuàng)建bin目錄放shell腳本,創(chuàng)建lib放置依賴的jar包。安裝JDK
腳本內(nèi)容:
#!/bin/sh
if [ -z "$PROG_HOME" ] ; then
## resolve links - $0 may be a link to PROG_HOME
PRG="$0"
# need this for relative symlinks
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
saveddir=`pwd`
PROG_HOME=`dirname "$PRG"`/..
# make it fully qualified
PROG_HOME=`cd "$PROG_HOME" && pwd`
cd "$saveddir"
fi
#配置jdk目錄
JAVACMD="/usr/jdk1.8.0_181/bin/java"
JAVA_HOME="/usr/jdk1.8.0_181/"
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly."
echo " We cannot execute $JAVACMD"
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSPATH_SUFFIX=""
# Path separator used in EXTRA_CLASSPATH
PSEP=":"
echo $@
PROG_NAME=master
PROG_VERSION=0.8.5-SNAPSHOT
exec "$JAVACMD" \
"-server" "-Djava.net.preferIPv4Stack=true" "-DlogFilename=master" "-Djava.rmi.server.hostname=localhost" \
${JAVA_OPTS} \
-cp "${PROG_HOME}/conf${PSEP}${PROG_HOME}/lib/*${PSEP}${PROG_HOME}/target/scala-2.11/classes"\
com.mango.sharding.main.Master "$@"
啟動腳本 根目錄下 bin/XXX 可以帶參數(shù)
例如 bin/master -ip 0.0.0.0 -port 0
在Master 中 處理參數(shù)
object Master{
def main(args: Array[String]): Unit = {}
}
// args: Array("-ip","0.0.0.0","-port","0")
- 注:把scala-library-X.X.X.jar放入\lib\