Java漂亮的命令行应用程序?

5
我希望制作一个流畅的Java命令行应用程序,不包含所有讨厌的"java -jar some.jar arguments"。相反,我希望它能像下面这样工作:
program -option argument

和其他命令行应用一样。我使用Ubuntu Linux,如果它包含一点.sh脚本或任何东西都可以。我知道我可以创建一个文件,其中包含java -jar program.jar,然后执行chmod +x file,之后我可以用 ./file 运行它,但是如何将参数传递给程序呢?

3个回答

12
使用
java -jar program.jar $1 $2 $3

访问脚本的第一个、第二个和第三个参数。

示例来自http://www.ibm.com/developerworks/library/l-bash2.html

#!/usr/bin/env bash

echo name of script is $0
echo first argument is $1
echo second argument is $2
echo seventeenth argument is $17
echo number of arguments is $#

或者更好的方法是按照 @nos 的建议:

java -jar program.jar "$@"

6
将所有参数转发到Java应用程序中,例如 java -jar $@ - nos
如果您愿意,将bash脚本放在bash PATH中。 - phoenix24
只是为了挑剔一下,我认为"$@"处理引用更好(引用每个参数,如果路径中有空格,这非常方便)。 man bash会告诉你确切的情况... - pdbartlett
@pdbartlett,你能详细说明一下吗? - aioobe
感谢 @pdbartlett 提供清晰的示例!已更新答案。(并将其设为 wiki) - aioobe
显示剩余2条评论

0
在Linux上,你可以使用binfmt

0

如果你想要非常聪明地操作,并且你正在运行支持bash的平台,你可以通过生成自解压缩归档文件来完全隐藏你正在使用Java的事实,使用户无从得知。

请查看this post以获取有关如何实现自解压缩归档文件的一些提示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接