在远程机器linux上找不到java命令

时间:2016-08-26 13:27:26

标签: java linux bash apache-spark java-8

我尝试在群集独立模式下运行spark应用程序,当我访问某些远程计算机并使用“java -version”命令时我获取信息(java版本..),但在其他人上我收到错误

  

-bash:找不到命令

所以我想也许java没有安装在那些节点上所以我尝试了:

sudo apt -get install openjdk-8-jdk

但我得到同样的错误,所以想知道我该如何解决这个问题,我有一些问题:

- 我是否有必要在所有远程机器上安装java?或者如果我只在主节点上安装它就足够了?

- 如果我必须在每个节点上安装它,我该如何解决之前解释过的问题? (不能使用安装命令...)

- 在我的代码中,我使用的表达式只支持jdk 8,但有些节点(我可以获得“java版本”)它安装了jdk7,所以我必须重新安装jdk8吗?

1 个答案:

答案 0 :(得分:3)

“command not found”错误表示在$ PATH系统变量中列出的目录中都找不到您尝试调用的特定命令。

有两种解决方法:

1)运行可执行文件时指定完整路径:

/opt/jdk-12345/bin/java -version

2)将相同的路径添加到PATH的开头(更改将仅应用于当前会话):

export PATH=/opt/jdk-12345/bin:$PATH
java -version

要永久修复此问题,请将该行(export PATH=/opt/jdk-12345/bin:$PATH)添加到〜/ .bashrc(如果BASH是该用户的默认shell)或〜/ .profile

另外,因为这是Unix Java,如果您正在运行某些服务器应用程序,请确保设置LD_LIBRARY_PATH和CLASSPATH变量。通常这是在应用程序启动脚本中完成的,不需要全局化。

请验证您正在运行的服务器操作系统(uname -a/bin/uname -a),因为不同的Unix系统有不同的软件包管理器:apt-get用于Ubuntu / Debian,rpm用于RedHat,Entropy用于Sabayon / Gentoo等......