当我尝试在命令行中命令它执行正常
$: /application/jre/bin/java -classpath /application/common/lib/apps.jar: ./updater.jar com.application.updatermain mobile
执行完全正常并返回结果,而当我尝试将其放在名为run.sh
如果我创建run.sh
为
/application/jre/bin/java -classpath /application/common/lib/apps.jar: ./updater.jar com.application.updatermain $@
并尝试运行它
./run.sh mobile
它行为怪异
我的java代码:
if (args.length == 1) {
if (args[0].equalsIgnoreCase("mobile") ) {
updateDB = true;
} else {
System.out.println(" 1 :Usage: ./run.sh [mobile] "+ args[0]);
return;
}
}
它给我输出
1 :Usage: ./run.sh [mobile] mobile
我在这里遗漏了什么。
非常感谢
答案 0 :(得分:1)
删除脚本"./updater.jar";
应包含的"run.sh"
之前的空格:
/application/jre/bin/java -classpath /application/common/lib/apps.jar:./updater.jar com.application.updatermain $@
答案 1 :(得分:1)
似乎有些空间会增加参数。
您必须trim
arg[0]
:
if (args.length == 1) {
if (args[0].trim().equalsIgnoreCase("mobile") ) {
updateDB = true;
}
else {
System.out.println(" 1 :Usage: ./run.sh [mobile] "+ args[0]);
return;
}
}