2013-04-18 38 views
0

工作我試圖以下列方式Java的版本不與SSH

ssh [email protected] "java -version" 

我越來越bash: java: command not found使用ssh遠程Linux機器上運行java -version。 但是,java安裝在遠程機器上,並且我已將JAVA_HOME保存在文件中,即/etc/profile~/.bashrc。直接運行時,我可以在上面獲得java -version

爲什麼? 我的目標是獲得Java版本。在遠程linux機器上獲取已安裝的Java版本需要進行哪些更改?

回答

2

這不是關於java。它主要是關於SSH。當你使用SSH運行命令時,你實際上使用特定的環境連接到遠程機器。在你的情況下使用用戶ravi。我相信這個用戶在其配置文件腳本(例如.bachrc)中定義的PATH變量中沒有java

嘗試運行ssh [email protected] "echo $PATH"並查看java不存在。

現在問題是你想要什麼。如果你只想運行java,使用絕對路徑。如果您希望能夠使用命令行運行java,請爲您正在使用的用戶帳戶添加java到PATH

+0

有一些奇怪的事情,讓我告訴你一些環境細節我正在執行的機器是安裝在機器上的虛擬機,它具有ip 192.168.3.90 。現在根據你的建議,我運行'ssh [email protected]「echo $ PATH」'這給了我本地機器的PATH':奇怪但是真的 –

+1

「echo $ PATH」將打印本地,但是「 echo \ $ PATH「將打印遠程PATH。 – oikku

1

您需要將java命令放在遠程計算機上的PATH上。如果不是,則需要使用絕對文件路徑運行它。

+0

他已經提到過了嗎? – hiway

1

ssh [email protected] "which java"會告訴你什麼。似乎沒有從PATH中找到java。

+0

沒有顯示任何東西:(僅供參考,我手動解壓java包,並在'/ etc/profile'和'.bashrc'文件中附加下面的'JAVA_HOME'和'PATH'。export JAVA_HOME =/opt/jdk1.6.0_24 ' 'export PATH = $ PATH:$ JAVA_HOME/bin' –