如何在CentOS上安装Java SDK?

103

我有一个运行着 CentOS 5 的系统,但不知道在Linux上安装Java SDK的步骤。

从哪里下载RPM文件,并接下来应该怎样做才能完整地进行安装?

然后我需要安装 Tomcat

或者是否有现成的软件包可以一次性安装所有的东西?


我怀疑我们需要开始明确我们何时指的是Oracle Java,或者可以接受开源替代品之一。Sventek给出了一个很好的答案 - 但如果您有维护者拒绝在Oracle Java / JDK工具上重现问题直到修复问题,那么这并没有帮助。 - Danny Staple
12个回答

166
以下命令将返回与Java直接相关的所有软件包列表,这些软件包将以java-格式呈现。
$ yum search java | grep 'java-'
如果没有可用的软件包,则可能需要下载一个新的软件库进行搜索。我建议查看Dag Wieers' repo。下载后,请再次尝试上述命令。
您将看到至少一个可供下载的Java软件包版本。根据您阅读此内容的时间,最新可用版本可能会有所不同。
java-1.7.0-openjdk.x86_64

上述软件包仅仅会安装JRE。若要同时安装javac和JDK,可运行以下命令:

$ yum install java-1.7.0-openjdk*

以下这些包将被安装(以及它们的依赖项):

java-1.7.0-openjdk.x86_64
java-1.7.0-openjdk-accessibility.x86_64
java-1.7.0-openjdk-demo.x86_64
java-1.7.0-openjdk-devel.x86_64
java-1.7.0-openjdk-headless.x86_64
java-1.7.0-openjdk-javadoc.noarch
java-1.7.0-openjdk-src.x86_64

65
在CentOS 6.5上测试过。sudo yum install java-1.7.0-openjdk.x86_64只安装JRE(将没有javac)。sudo yum install java-1.7.0-openjdk-devel则安装JDK。 - Thamme Gowda
我可以确认这也适用于较旧版本的CentOS(我刚在5.6上运行了yum install命令)。 - crmpicco
@ThammeGowda - 感谢您指出,您的建议很好用。 - Tarun Sapra
1
@ThammeGowdaN,我提交了一份编辑,其中包括您的指示。 - onebree
1
已在CentOS 7上进行测试并确认。 - onebree
显示剩余3条评论

34

@Sventeck,太棒了。

Redhat文档始终是一个很好的资源 - 可以在此找到通过yum安装JDK并设置路径的详细教程(祝您好运!)- 安装OpenJDK并设置$JAVA_HOME路径

OpenJDK 6:

yum install java-1.6.0-openjdk-devel

OpenJDK 7:

yum install java-1.7.0-openjdk-devel

要列出所有可用的Java OpenJDK开发包,请尝试:

yum list "java-*-openjdk-devel"

1
经过在CentOS 6.4上的测试,我确认这是“centos”的方法。JAVA_HOME环境变量应设置为“/etc/alternatives/jre”。 - Emmanuel Keller
非常喜欢Centos!这个变量也可以存储在/etc/environment中,这是大多数系统范围的全局变量应该存在的地方。echo JAVA_HOME="path/to/JAVA_HOME" >> /etc/environment - xpros

18

yum install java-1.8.0

然后:

alternatives --config java

并检查:

java -version

13
在CentOS 7上,我只需执行以下命令:
sudo yum install java-sdk
我假设您已经有了大部分常见的存储库。CentOS会使用“-devel”后缀找到正确的SDK。

10

另一个答案是,

sudo yum list \*java-1\* | grep open 

然后从列表中选择一个并安装它。

例如:

sudo yum install java-1.7.0-openjdk.x86_64

6

这里提供了关于在CentOS6上设置Java及其路径的详细信息。

以下步骤用于安装最新版本的Java 8:

  1. Oracle网站下载Java rpm软件包。 (jdk-8-linux-x64.rpm)
  2. 通过rpm进行安装。 (rpm -Uvh jdk-8-linux-x64.rpm)
  3. 打开/etc/profile文件,并设置Java路径,保存更改。
  4. 使用命令which javajava -version检查Java安装路径及版本。

现在,您可以使用一个简单的Java程序测试安装情况。


3

由于Oracle在其下载链接中插入了一些md5hash,因此无法自动组装命令行的下载链接。

因此,我调整了一些恶劣的bash命令行,以获取最新的jdk下载链接,下载并通过rpm直接安装。

对于所有感兴趣的人:

wget -q http://www.oracle.com/technetwork/java/javase/downloads/index.html -O ./index.html && grep -Eoi ']+>' index.html | grep -Eoi '/technetwork/java/javase/downloads/jdk8-downloads-[0-9]+.html' | (head -n 1) | awk '{print "http://www.oracle.com"$1}' | xargs wget --no-cookies --header "Cookie: gpw_e24=xxx; oraclelicense=accept-securebackup-cookie;" -O index.html -q && grep -Eoi '"filepath":"[^"]+jdk-8u[0-9]+-PACKAGE"' index.html | grep -Eoi 'http:[^"]+' | xargs wget --no-cookies --header "Cookie: gpw_e24=xxx; oraclelicense=accept-securebackup-cookie;" -q -O ./jdk8.rpm && sudo rpm -i ./jdk8.rpm

1
正义的黑客。 - Aaron Altman
我曾在一个bash脚本中使用了类似的方法来获取版本8和9的最新JRE和JDK下载链接。它可以在这个帖子的答案中找到。 - U880D

2
如果您需要Oracle JDK且不想使用yum/rpm,请参考以下答案:

在Linux上通过wget下载Java JDK时显示许可证页面

根据该帖子,您可以使用curl自动下载tarball并指定cookie header。然后,您可以将tarball内容放在正确的位置,并将java添加到您的PATH中,例如:
curl -v -j -k -L -H "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u45-b14/jdk-8u45-linux-x64.tar.gz > jdk.tar.gz

tar xzvf jdk.tar.gz
sudo mkdir /usr/local/java
sudo mv jdk1.8.0_45 /usr/local/java/
sudo ln -s /usr/local/java/jdk1.8.0_45 /usr/local/java/jdk

sudo vi /etc/profile.d/java.sh
export PATH="$PATH:/usr/local/java/jdk/bin"
export JAVA_HOME=/usr/local/java/jdk

source /etc/profile.d/java.sh

0

我编写了一个shell脚本,在CentOS上安装/卸载Java。 只需运行该shell即可完成操作。 该shell的核心代码如下:

1.download the jdk rpm(RedHat Package Manager) package.
2.install java using rpm.

您可以在此处查看更多详细信息: https://github.com/daikaixian/WaterShell/tree/master/program_installer

希望它能为您工作。


0

使用以下命令通过终端安装Oracle Java8

步骤-1)访问Oracle JDK下载页面,查找RPM版本

步骤-2)使用以下命令下载Oracle Java 8          wget --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.rpm

步骤-3)使用以下命令安装Java8          sudo yum localinstall jdk-8u121-linux-x64.rpm          现在JDK应该已经安装在          /usr/java/jdk1.8.0_121 步骤-4)删除下载的.rpm文件以利用空间。          rm jdk-8u121-linux-x64.rpm

步骤-5)使用命令验证Java          java -version

步骤-6) 如果CentOS安装了多个JDK,可以使用alternatives命令设置默认的java版本 sudo alternatives --config java

步骤-7) 可选设置JAVA_HOME环境变量。 复制jdk安装路径,例如 /usr/java/jdk1.8.0_121 使用以下命令导出java home export JAVA_HOME=/usr/java/jdk1.8.0_121 export PATH=$PATH:$JAVA_HOME


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接