2013-04-18 43 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' –