Linux Shell 調用jar包與參數傳遞

一、Shell中調用jar包並傳參的方式

# jar包路徑

JAR_PATH=home/bin/test.jar

# 要傳遞的參數

PARAM="1"

# 調用jar包

java -jar $JAR_PATH $PARAM

或者直接 java -jar home/bin/test.jar "1"

"1" 將傳遞到jar包主程序的main方法中的參數列表第一位,如果有兩個參數,怎麼在後面 空格 +參數,例如:

 java -jar home/bin/test.jar "1" "2"

如果調用jar包成功,怎麼和Shell正常結束程序一樣,返回0,可以用$?進行判斷:

if [ $? -ne 0 ]; then
echo "=====調用失敗 =====" 
exit 1
fi

二、如何在調用jar包成功後,獲取java程序返回的參數

有兩種方式:

1、管道,比較複雜,不推薦使用

2、通過jar包中主程序方法裏面的的輸出語句System.out.prinln("123"),如果主方法中調用了外部方法,方法中有輸出語句,那麼需要注意,都會被當做Shell當做參數接收。

獲取jar輸入的參數的方式爲:

# 用變量接收參數

VAR=$(java -jar $JAR_PATH $PARAM)

# 輸出返回值

echo $VAR

完整實例:

#!/bin/sh

# jar包路徑
JAR_PATH=home/bin/test.jar

# 要傳遞的參數
PARAM="1"

# 調用jar包傳參並接收返回值
VAR=$(java -jar $JAR_PATH $PARAM)

# 判斷調用是否成功
if [ $? -ne 0 ]; then
		echo "=====調用失敗 =====" 
		exit 1
fi

# 成功獲得返回值
echo $VAR

exit 0

因爲程序執行完畢,正常退出返回0,非0的返回都是非正常退出。所以java代碼也可以這麼寫。

public class Test {
    public static void main(String[] args) {
        System.exit(4);
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章