CentOS下怎么安装JDK_CentOS系统安装配置Java开发环境详细教程

阿宇同学_8654

阿宇同学_8654

2025-08-31

1055人浏览

原创

答案:CentOS安装JDK有两种方法:推荐使用yum安装Open-JDK,省心且依赖管理好;若需特定版本则手动下载解压并配置环境变量,关键步骤是设置JAVA_HOME、PATH和CLASSPATH,通过alternatives管理多版本(yum安装)或用别名切换(手动安装),开发者必须装JDK因需javac等工具。

centos下怎么安装jdk_centos系统安装配置java开发环境详细教程

在CentOS系统上安装JDK,对于任何Java开发者来说,都是迈入新项目的第一步,也是最基础的一步。说白了,这事儿不难,但配置环境总有些小细节,稍不注意就可能踩坑。核心思路无非两种:要么借助包管理器

yum

快速部署Open-JDK,要么手动下载压缩包,自己解压配置环境变量。无论哪种,目标都是让你的系统能识别

java

和

javac

命令,为后续的开发工作打下基础。

老实说,我个人更倾向于使用

yum

来安装Open-JDK,因为它省心,依赖管理也做得好。但如果你有特定版本需求,或者非要用Oracle JDK(虽然现在下载更麻烦了),手动安装也是必经之路。

方法一:利用

yum
安装Open-JDK(推荐,省心)

这是最省事的方法,尤其是在CentOS这种基于RPM的系统上。

  1. 检查可用的JDK版本: 在终端里敲入这行命令,你会看到一大堆和Java相关的包。

    yum search java | grep -i --color "jdk"

    通常,你会看到

    java-1.8.0-openjdk-devel
    (对应JDK 8)、
    java-11-openjdk-devel
    (对应JDK 11)之类的。这里的
    devel
    后缀很重要,它表示安装的是开发工具包(JDK),而不是仅仅运行环境(JRE)。
  2. 安装你需要的版本: 比如,我经常用JDK 8,那命令就是:

    sudo yum install java-1.8.0-openjdk-devel -y

    如果提示没有权限,记得加

    sudo
    。系统会帮你处理好所有依赖。
  3. 验证安装: 安装完成后,赶紧跑一下:

    java -version
    javac -version

    如果能看到正确的版本信息,恭喜你,基本搞定了!

  4. 设置默认Java版本(如果装了多个): CentOS有个很方便的工具叫

    alternatives
    。如果你系统里装了多个JDK版本,可以用它来切换默认。
    sudo alternatives --config java
    sudo alternatives --config javac

    它会列出所有可用的Java版本,你输入对应的数字就能选择。

方法二:手动下载并配置JDK(更灵活,但稍显繁琐)

这种方法适用于你需要特定版本的Oracle JDK,或者

yum

仓库里没有你想要的Open-JDK版本。

  1. 下载JDK压缩包: 通常是

    .tar.gz
    格式。你需要从官网(比如OpenJDK的官方下载页面)下载。这里就不具体写下载链接了,因为版本更新快,链接也可能变。
  2. 上传到CentOS服务器: 用

    scp
    或者
    rz
    命令把下载好的文件传到服务器上。我一般会放到
    ~/Downloads
    或者直接传到目标安装目录。
  3. 创建安装目录并解压: 我习惯把所有手动安装的软件都放在

    /usr/local
    下,这样管理起来比较清晰。
    sudo mkdir -p /usr/local/java
    sudo tar -zxvf /path/to/your/jdk-*.tar.gz -C /usr/local/java/

    解压后,

    /usr/local/java
    目录下应该会出现一个类似
    jdk1.8.0_xxx
    或
    jdk-11.0.x
    的文件夹。
  4. 配置环境变量: 这是手动安装的关键一步。我通常会在

    /etc/profile.d/
    目录下创建一个新的
    .sh
    文件,比如
    java.sh
    ,这样可以避免直接修改
    /etc/profile
    这个核心文件,也方便管理。
    sudo vim /etc/profile.d/java.sh

    在

    java.sh
    里添加以下内容(记得把
    jdk1.8.0_xxx
    替换成你实际解压出来的文件夹名):
    export JAVA_HOME=/usr/local/java/jdk1.8.0_xxx
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    保存并退出。

  5. 让环境变量生效:

    source /etc/profile

    或者直接重启会话(重新登录SSH)。

  6. 验证安装:

    java -version
    javac -version
    echo $JAVA_HOME

    确保

    JAVA_HOME
    指向你安装的路径,并且
    java
    和
    javac
    命令能正常运行。

为什么我需要安装JDK,而不是JRE?

这个问题,新手经常会问,但对我们开发者来说,答案其实挺明确的。简单来说,JRE(Java Runtime Environment)是Java程序的运行环境,它只包含Java虚拟机(JVM)和Java核心类库,能让你跑起来别人的Java应用。但如果你想自己写代码、编译代码,那就远远不够了。

JDK(Java Development Kit)才是我们的主力工具包。它在JRE的基础上,额外提供了

javac

(Java编译器)、

jar

(Java归档工具)、

java-api-doc-generator
java-api-doc-generator

分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。

下载
javadoc

(文档生成器)等一系列开发工具。没有

javac

,你的

.java

源文件就无法被编译成

.class

字节码;没有

jar

,你就没法打包你的应用或者库。所以,作为一名开发者,安装JDK是必须的,JRE只是它的一个子集,或者说是运行时的那一部分。我个人觉得,理解这个区别,能帮你更好地理解Java生态,也能避免一些不必要的配置困惑。

如何在CentOS上管理多个JDK版本?

在实际开发中,尤其是在维护老项目或者测试不同Java版本兼容性时,系统里同时存在多个JDK版本是常态。CentOS在这方面,针对

yum

安装的JDK,提供了一个非常优雅的解决方案:

alternatives

命令。

如果你是通过

yum

安装的多个Open-JDK版本(比如JDK 8和JDK 11),你可以这样切换:

sudo alternatives --config java

执行后,你会看到一个列表,上面有你系统里所有通过

alternatives

注册的Java可执行文件,以及它们的优先级。你只需要输入对应的数字,回车,系统就会把默认的

java

命令指向你选择的版本。同理,

javac

也需要这样设置:

sudo alternatives --config javac

这样操作的好处是,它会帮你管理

/usr/bin/java

和

/usr/bin/javac

这些符号链接,非常方便。

但如果是手动安装的JDK,

alternatives

就帮不上忙了。这时候,管理多个版本主要靠环境变量。我通常会这样做:

  1. 为每个手动安装的JDK设置独立的

    JAVA_HOME
    。 比如,一个

    JAVA_HOME_8
    指向JDK 8,一个
    JAVA_HOME_11
    指向JDK 11。
  2. 通过修改

    ~/.bashrc
    或
    ~/.bash_profile
    来切换。
    我会在这些文件里定义一些别名(alias)或者简单的函数,比如:

    # JDK 8
    alias usejdk8='export JAVA_HOME=/usr/local/java/jdk1.8.0_xxx; export PATH=$JAVA_HOME/bin:$PATH; echo "Switched to JDK 8"'
    
    # JDK 11
    alias usejdk11='export JAVA_HOME=/usr/local/java/jdk-11.0.x; export PATH=$JAVA_HOME/bin:$PATH; echo "Switched to JDK 11"'

    然后,当你需要切换时,直接在终端输入

    usejdk8
    或
    usejdk11
    就行了。当然,每次切换后,你可能需要重新
    source ~/.bashrc
    或者开一个新的终端会话。

这种手动管理的方式虽然没有

alternatives

那么自动化,但胜

Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.18

6307

5

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2023.08.10

2648

6

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

2024.01.03

4216

7

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

2025.12.06

306

9

oracle清空表数据
oracle清空表数据

当表中的数据不需要时,则应该删除该数据并释放所占用的空间。本专题为大家提供oracle清空表数据的相关文章,帮助大家解决该问题。

2023.08.16

1061

5

Oracle中declare的使用
Oracle中declare的使用

Oracle DECLARE语句是PL/SQL编程语言中用于声明变量、常量、游标或异常的关键字。它的主要作用是在程序中定义这些对象,以便在后续的代码中使用。DECLARE语句的语法简单明了,可以根据需要声明多个对象。通过使用这些声明的对象,可以进行各种操作,如计算、查询数据库、处理异常等 。

2023.09.15

3113

5

oracle怎么分页
oracle怎么分页

实现分页的步骤:1、使用ROWNUM进行分页查询;2、在执行查询之前进行设置分页参数;3、使用"COUNT(*)"函数来获取总行数,并使用"CEIL"函数来向上取整计算总页数;4、在外部查询中使用"WHERE"子句来筛选出特定的行号范围,以实现分页查询。想了解更多oracle怎么分页的文章,可以来阅读本专题先的文章。

2023.09.18

3130

5

Oracle查看表操作历史记录
Oracle查看表操作历史记录

查看操作历史记录的方法:1、使用Oracle内置的审计功能,可以记录数据库中发生的各种操作,包括登录、DDL语句、DML语句等;2、使用Oracle日志文件,其中包含了数据库中发生的各种操作,可以通过查看日志文件来获取操作历史记录;3、使用Oracle的Flashback功能,可以查看数据库在某个时间点的操作历史记录;4、使用第三方工具等。本专题还提供其他查看表操作的文章,大家可以免费阅读。

2023.09.19

1789

3

Oracle中RAC的用法
Oracle中RAC的用法

Oracle中RAC的用法:1、通过在多个服务器上运行数据库实例来提供高可用性;2、允许在需要时增加或减少节点数量;3、通过将工作负载分布到多个节点上来实现负载均衡;4、使用共享存储来实现多个节点之间的数据共享;5、允许多个节点同时处理数据库请求,从而实现并行处理;6、提供了透明故障切换功能;7、使用了一些技术来确保数据的一致性;8、提供了管理工具来简化RAC环境的管理和维护。本专题还提供RAC相关的其他文章,大家可以免费阅读。

2023.09.19

2393

7

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CentOS 官方文档
CentOS 官方文档

共0课时 | 0人学习