用于使用参数调用Java程序的Linux shell脚本

Linux shell script for calling Java program with arguments

我有一个java程序,在linux框中作为服务运行。 我有shell脚本文件,有以下行来启动程序。

1
2
3
4
5
$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"传递给我的程序?

1
$EXEC -home"$JAVA_HOME" -cp"$CLASS_PATH" -outfile"$LOG_OUT" -errfile"$LOG_ERR" -pidfile"$PID" $1 $CLASS


我在考虑$EXEC是java可执行文件,$1是你的JAR,$CLASS是你的主类。 在这种情况下,只需将${@:2}附加到行尾:

1
$EXEC -home"$JAVA_HOME" -cp"$CLASS_PATH" -outfile"$LOG_OUT" -errfile"$LOG_ERR" -pidfile"$PID" $1 $CLASS ${@:2}