This question already has answers here:
Java command not found on Linux
                                
                                    (5个答案)
                                
                        
                                3年前关闭。
            
                    
我尝试在集群独立模式下运行spark应用程序,当我访问某些远程计算机并使用“ java -version”命令时,我得到了信息(java版本..),但在其他情况下却出现了错误


  -bash:找不到命令


所以我认为也许Java没有安装在那些节点上,所以我尝试了:

sudo apt -get install openjdk-8-jdk


但我遇到同样的错误,因此想知道如何解决此问题,并且我有一些问题:

-是否有必要在所有远程计算机上安装Java?还是如果我仅将其安装在主节点上就足够了?

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

-在我的代码中,我使用了仅受jdk 8支持的表达式,但是某些节点(可以在其中获得“ java版本”)安装了jdk7,因此是否必须重新安装jdk8?

最佳答案

“未找到命令”错误意味着$ 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,等等。

09-20 12:34