脚本如何将参数从包装器外壳脚本传递到Java应用程序?
我想在命令行上运行我正在创建的Java程序(linux和mac)。我不想一直输入“java”和参数,所以我正在考虑创建包装器脚本。最好的方法是什么,这样他们就可以在任何地方工作?我也希望能够传递论点。我想用“shift”来做这个(去掉第一个参数)
有没有更好的方法不用脚本就能做到这一点?也许可以制作一个不需要通过“java”命令调用的可执行文件
你可以在下面搜索框中键入要查询的问题!
我想在命令行上运行我正在创建的Java程序(linux和mac)。我不想一直输入“java”和参数,所以我正在考虑创建包装器脚本。最好的方法是什么,这样他们就可以在任何地方工作?我也希望能够传递论点。我想用“shift”来做这个(去掉第一个参数)
有没有更好的方法不用脚本就能做到这一点?也许可以制作一个不需要通过“java”命令调用的可执行文件
# 1 楼答案
你可以create a shell script那accepts arguments。在shell脚本中,它将如下所示:
在本例中,
YourApp
接受两个参数。如果您的shell脚本名为app.sh
,您可以这样执行它:-# 2 楼答案
假设您使用的是与Bourne shell兼容的shell;e、 如sh、bash、ksh等,以下包装器将把所有命令行参数传递给java命令:
$@
扩展到shell脚本的其余参数,在其周围加引号会导致单独引用这些参数,以便以下内容将单个参数传递给Java:如果包装器脚本中的
"$@"
周围没有双引号,Java将收到上述三个参数请注意,这不适用于
"$*"
。根据bash
手动输入:换句话说,所有shell参数都将被连接到Java应用程序的单个命令参数中,而忽略原始单词边界
请参阅
bash
或sh
手册。。。或者POSIX外壳规范。。。有关shell如何处理引用的更多信息