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
。我宁愿把它作为一个单独的问题/帖子处理。
谢谢!
答案 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,则此优先级将失败。