在 .bashrc 中添加 JAVA_HOME (JDK)

在 .bashrc 中添加 JAVA_HOME (JDK)

我刚刚安装了 Ubuntu,并且是 Java 7u55(JDK),并且正在尝试将 JAVA_HOME 配置为环境变量。

我补充说~/.bashrc

# Exports
JAVA_HOME=/home/myuser/sandbox/java/7u55/jdk1.7.0_55
export PATH=$PATH:JAVA_HOME

然而,当我关闭终端并打开一个新的 shell 并输入which javajava -versionUbuntu 似乎不知道我在说什么(说程序java可以在几个包之一中找到并提示我使用sudo apt-get其中一个来安装)。

我究竟做错了什么?

答案1

首先,您在 export 行中输入了错误。应该是

export PATH=$PATH:$JAVA_HOME/bin

没有空格,在JAVA_HOME前添加一个$字符,添加/bin

但是修复上述代码可能无法解决您安装 Java 时遇到的问题。安装 Java 最简单的方法是使用 webup8 ppa:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

在最后一条命令之后,脚本会自动从 Oracle 网站下载 jdk 并安装。你可以阅读教程这里

答案2

您已经设置了环境变量JAVA_HOME,但这只是一个供想要知道 JRE 或 JDK 在哪里的应用程序使用的值。

PATH当您尝试运行可执行文件时,您的 shell 会查找 。因此,当您输入 时,java -version它会在 JDK 文件夹中查找。请注意,java实际上是在 里面$JAVA_HOME/bin。这就是它找不到它的原因。

这就是解释。

修复方法是将其$PATH正确添加到:

export PATH=$PATH:JAVA_HOME/bin

update-alternatives或者运行添加 JDK 路径到系统的java替代品。

例如

update-alternatives --install "/usr/bin/java" "java" "/home/myuser/sandbox/java/7u55/jdk1.7.0_55/bin/java" 3

答案3

Sqoop 未找到 jdk,这就是出现此错误的原因。默认情况下使用 jre,并且它没有编译 sqoop 作业所需的 javac 文件。

解决方案:

如果系统上安装了 jdk,则在 hadoop-env.sh 文件中进行相同的配置:

# The java implementation to use.  Required.
export JAVA_HOME=/opt/jdk1.8.0_151/

并在 .bash_profile 文件中。

喜欢:

PATH=$PATH:$HOME/.local/bin:$HOME/bin:/opt/jdk1.8.0_151/bin

然后运行 ​​source . .bash_profile

就这样,现在测试 sqoop 作业将正常工作。

答案4

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

相关内容