2016-04-02 256 views
0

我想從bash腳本中使用java -jar命令執行jar文件。同時,我傳遞了幾個參數,我可以在我的主要方法中使用args []來訪問。通過bash腳本執行jar文件

我可以,如果我嘗試這樣做沒有任何問題,

java -jar org.sample.jar localhost 8080 

,但我想使這些參數通過幾個變量配置。

如: -

HOST=localhost 
PORT=8080 

當我嘗試使用上述類似下列變量,bash腳本就會失敗。

java -jar org.sample.jar $HOST $PORT 

我也嘗試使用「$ HOST」,但沒有任何運氣。我在這裏做錯了什麼?

UPDATE

我用Cygwin來執行/調試我的bash腳本。一旦我使用git bash執行相同的腳本,它就可以工作。

回答

1

你應該把這個包裝在一個bash腳本中並使用bash參數。

假設你將有一個腳本文件sample.sh。

在sample.sh

,它只包含一個線,這是java -jar org.sample.jar "[email protected]"

然後通過bash sample.sh -Host hostname -port 8080

Here is a post about how to do this.

UPDATE

執行你的JAR文件中使用的變量bash腳本,您的腳本將如下所示:

Host="localhost" 
Port=8080 

java -jar org.sample.jar $Host $Port 

我正在使用Eclipse,我只寫了一個具有主方法並打印所有參數的類。然後我使用Eclipse來導出一個jar文件,然後使用這個解決方案,它工作。

+0

是的,但我的要求是使用我的bash腳本中存在的變量。我不想執行我的bash腳本傳遞參數。 – udarakr

+0

@udarakr查看我的更新 –

+0

我沒有看到任何區別,因爲您確實不需要使用「」來定義主機變量。據我所知只有你有一個空格時才需要引號Eg: - 本地主機 – udarakr