![](/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.