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

标签 java linux bash apache-spark java-8

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

-bash: command not found

所以我认为这些节点上可能没有安装java,所以我尝试了:

sudo apt -get install openjdk-8-jdk

但是我遇到了同样的错误,所以想知道如何解决这个问题,并且我有一些问题:

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

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

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

最佳答案

“找不到命令”错误意味着您尝试调用的特定命令在 $PATH 系统变量中列出的两个目录中都找不到。

有两种方法可以解决此问题:

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

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

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

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 等...

关于在远程机器linux上找不到java命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39167499/

相关文章:

java - 连续逐渐将背景颜色更改为所有颜色

Java Rest 模板抛出 java.lang.IllegalArgumentException : Comparison method violates its general contract

linux - 是否有可能 "transfer"正在运行的应用程序到另一个终端/用户?

linux - 如何在 linux 中使用 awk 命令获取与特定值匹配的列的记录数

java - Hibernate 无法保存其中一个字段为枚举的实体

java - Android Studio - EditText.addTextChangedListener 不起作用

c - x264 配置链接和构建问题

bash - 如何将 wc -l 输出通过管道传输到 echo 输出

linux - 如何使用 parted 编写自动任务脚本(更新 gpt 表)

if 的 Bash 约定;然后