从Binary在Ubuntu Linux上安装Java 1.8

时间:2015-05-19 03:30:21

标签: java linux oracle ubuntu

Oracle在how to install Java 1.8 from the binary

上托管了一个页面

我能够做到以下几点 -

在Oracle下载页面上下载x64 tar.gz

创建我的目录并将文件移到那里

sudo mkdir /usr/local/java
sudo mv ~/Downloads/jdk-8u45-linux-x64.tar.gz .

然后解压缩

sudo tar zxvf jdk-8u45-linux-x64.tar.gz

二进制文件本身可以工作,因为我可以使用绝对路径

来调用它
> /usr/local/java/jdk1.8.0_45/bin/java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

但我不能单独称它为

> java -version
The program 'java' can be found in the following packages:
 * default-jre
 * gcj-4.6-jre-headless
 * gcj-4.7-jre-headless
 * openjdk-7-jre-headless
 * openjdk-6-jre-headless
Try: sudo apt-get install <selected package>

即使将$JAVA_HOME设置为该目录也不起作用。我缺少一步吗?是否需要添加到我的$PATH

编辑:我知道我可能会使用sudo apt-get install安装java。我在那里遇到了一些麻烦,因为有些apt-get update错误我无法404。我宁愿把它作为一个单独的问题/帖子处理。

谢谢!

2 个答案:

答案 0 :(得分:4)

您刚刚提取了二进制文件但未设置JAVA_HOME。 首先在您的个人资料中设置JAVA_HOME,即在~/.bashrc文件中。

export JAVA_HOME=/usr/local/java/jdk1.8.0_45
export PATH=$PATH:$JAVA_HOME/bin

~/.bashrc文件重新加载为

> source ~/.bashrc按Enter键

然后再试一次。

> java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

答案 1 :(得分:0)

执行此操作的最佳方法是使用不使用JAVA_HOME的更新替代方法。我将最新的tarball jdk-8u162-linux-x64.tar.gz 下载到子目录 ./ src 中。我还设置了 / opt 以便它归我所有,否则你需要使用sudo来解压缩.tar.gz文件。

#!/usr/bin/env bash

MAJOR_VERSION=8
ORACLE_BUILD_VERSION=162

JDK_TARBALL_VERSION=8u${ORACLE_BUILD_VERSION}-linux-x64
JDK_VERSION=1.${MAJOR_VERSION}.0_${ORACLE_BUILD_VERSION}
PRIORITY="10${MAJOR_VERSION}1"

cd src && tar xzf jdk-${JDK_TARBALL_VERSION}.tar.gz -C /opt/jdk

sudo update-alternatives --install /usr/bin/java java /opt/jdk/jdk${JDK_VERSION}/bin/java ${PRIORITY}
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk/jdk${JDK_VERSION}/bin/javac ${PRIORITY}

echo "Checking: alternatives on java and javac"
sudo update-alternatives --display java
sudo update-alternatives --display javac

echo "Running: java -version"
java -version

我已经包含了构建162,因为这比您的消息中的45更新。上面的这个脚本应该提供给开发领域的每个人,因为我们目前可以看到Debian和Ubuntu的oracle-java8-installer在昨天被破坏了。它可能会在几天内修复,但此脚本将始终有效。

脚本中的优先级值非常重要,因为您必须覆盖已安装软件包的现有优先级。我已将其设置为使用要安装的主要版本。如果安装了openjdk版本9,则此优先级将失败。