![](/img/trans.png)
[英]How to pass arguments from wrapper shell script to Java application?
[英]Java code fails to parse command line arguments pass from wrapper script
我有一个非常简单的包装器脚本,它获取参数并将其传递给Java jar。 不幸的是,我遇到了非常奇怪的行为。 下面是一个例子。
执行脚本的命令:
./wrapper http://localhost:8485/metrics 900 200
脚本:
#/bin/sh
/usr/java/default/bin/java -jar /usr/plugins/checkmetrics.jar $@
Java代码:
public static void main(String[] args) throws IOException {
String metricsUrl = args[0];
int heapWarnValue = Integer.parseInt(args[1]);
int threadWarnValue = Integer.parseInt(args[2]);
}
这给了我NumberFormatException:
"xception in thread "main" java.lang.NumberFormatException: For input string: "200
但是,如果我将命令更改为以下命令,则一切正常:
./wrapper http://localhost:8485/metrics 900 200" "
伤了我的大脑,但我不明白我哪里错了。 有人可以解释吗? 提前致谢
脚本末尾是否有未正确处理的LF或CR字符(如果您在Windows环境中使用Unix行尾,反之亦然)?
我提到此问题的原因是您提到的错误是
对于输入字符串:“ 200
我愿意打赌,在下一行的开头还有另一个引号。 如果真是这样,它将尝试将200和CR一起解析为整数。 整理行尾,一切都会好的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.