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

时间:2015-11-22 00:38:49

标签: java linux bash shell

我有一个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

1 个答案:

答案 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}