簡體   English   中英

Java代碼無法解析從包裝腳本傳遞的命令行參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM