【发布时间】:2015-11-22 00:38:48
【问题描述】:
我有一个在 linux 机器中作为服务运行的 java 程序。我有具有以下行的 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"
我可以使用以下命令启动和停止服务
服务 myscriptfilename 启动
服务 myscriptfilename 停止
现在我在我的程序中添加了一个名为“myflag”的新参数。它在 windows box 上运行良好。现在我很难使用 shell 脚本将新参数传递给我的 linux 机器上的程序。
现在我开始我的服务了
service myscriptfilename start myflag
我可以在 shell 脚本中使用 $2 来获取 myflag 的值。我想弄清楚如何将它传递给我的程序
如何在下一行中将我的“myflag”从 shell 脚本传递给我的程序?
$EXEC -home "$JAVA_HOME" -cp "$CLASS_PATH" -outfile "$LOG_OUT" -errfile "$LOG_ERR" -pidfile "$PID" $1 $CLASS
【问题讨论】:
-
你在问this吗?
-
我可以在 shell 脚本中使用 $2 获取 myflag 的值。我想弄清楚如何将它传递给我的程序?
-
谁知道你的程序如何解析命令行参数。没有公认的标准,所以可能有一百万种方法。毕竟它是你的程序,你应该比我们更了解......(就此而言,你甚至没有说
$EXEC是什么;也许所有Java程序员都知道它?我是不确定。) -
我正在寻找 args[0]。它在 windows 框中工作正常。我不确定在 linux 中的何处传递该参数