Java代码无法解析从包装器脚本

时间:2018-05-03 13:11:31

标签: java shell

我有一个非常简单的包装脚本,可以获取参数并将它们传递给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" "

打破了我的大脑,但我无法理解我错在哪里。有人能解释一下吗 提前致谢

1 个答案:

答案 0 :(得分:3)

脚本末尾是否存在未正确处理的LF或CR字符(如果在Windows环境中有unix行结尾,反之亦然)?

我提到这个的原因是你提到的错误说它是

  

输入字符串:“200

我愿意打赌下一行开头还有另一个引号。如果是这种情况,它会尝试将200和CR一起解析为整数。整理行结尾,一切都会好的。