我有一个java程序,在linux框中作为服务运行。我有shell脚本文件,它有以下行来启动程序。
$EXEC -home "$JAVA_HOME" -cp "$CLASS_PATH" -outfile "$LOG_OUT" -errfile "$LOG_ERR" -pidfile "$PID" $1 $CLASS
$CLASS_PATH has class path
$CLASS has the name of main class
EXEC="/usr/bin/jsvc"
我可以使用以下命令启动和停止服务
service myscriptfilename start
service myscriptfilename stop
现在我在我的程序中添加了一个名为“myflag”的新参数。它在windows box上工作正常。现在我很难使用shell脚本将新参数传递给我的linux盒子上的程序。
现在我正在开始我的服务
service myscriptfilename start myflag
我可以在shell脚本中使用$ 2获取myflag的值。我想知道如何将其传递给我的程序
如何从以下行的shell脚本中将“myflag”传递给我的程序?
$EXEC -home "$JAVA_HOME" -cp "$CLASS_PATH" -outfile "$LOG_OUT" -errfile "$LOG_ERR" -pidfile "$PID" $1 $CLASS
答案 0 :(得分:1)
我正在考虑$EXEC
是java可执行文件,$1
是您的JAR,$CLASS
是您的主要类。在这种情况下,只需将${@:2}
附加到该行的末尾:
$EXEC -home "$JAVA_HOME" -cp "$CLASS_PATH" -outfile "$LOG_OUT" -errfile "$LOG_ERR" -pidfile "$PID" $1 $CLASS ${@:2}