2010-11-24 137 views
0

請幫我在這立刻...如何從遠程服務器的Shell腳本運行java -jar命令?

問題在shell腳本的Java命令..

我有一臺服務器的腳本Cachereload.sh它具有以下命令:

java -jar SingMgmnt.jar $4 $2 $3 sixdee sixdee $5 

當我從同一臺服務器運行它時,這工作得很好。

但我想運行從另一臺服務器這個劇本,我這樣做是因爲

ssh [email protected] 'sh -c "./Cachereload.sh"' 

將提示輸入密碼,之後,它執行腳本。但後來我發現了一個錯誤,

./CacheReload.sh: line 4: java: command not found 

但只有java命令不工作我想.. bcoz PWD,LS甚至mysql命令正在從遠程服務器本身很好..

請幫助我..

多謝各位 AKHIL

+1

您是否嘗試使用Google搜索「linux java:command not found」並查看您遇到的錯誤的數千個答案? – 2010-11-24 15:43:58

+1

也許對serverfault有問題? – marcosbeirigo 2010-11-24 15:44:57

回答

2

這將關係到你的ssh環境從交互shell的環境不同。例如,假設你使用的是bash,你的.bashrc文件只能用於交互式shell環境。所以如果你在你的.bashrc文件中設置你的PATH變量,它只會對交互式shell有效。

一個簡單的解決方法是引用Cachereload.sh腳本中的java二進制文件的絕對路徑。

+0

非常感謝你Adamski ...但是能否告訴我如何在sh文件中引用java二進制文件的絕對路徑?實際上,我是shell腳本編程新手。還有,還有其他方法可以設置PATH變量,以便即使ssh環境也可以看到JAVA路徑嗎?如果我可以在遠程服務器的這個調用java命令中獲得成功,我通過dat獲得的成果將會很棒..所以請幫助我..在此先感謝.. – AKHIL 2010-11-24 19:50:22

0

當oracle用戶在服務器上運行此命令而不是通過一行ssh時會發生什麼情況。

它很可能是java不在此用戶的PATH中(可能根本沒有安裝)。

相關問題