0

0

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

雪夜

雪夜

发布时间:2025-08-31 10:36:01

|

995人浏览过

|

来源于php中文网

原创

答案: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的系统上。

立即学习Java免费学习笔记(深入)”;

  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. 让环境变量生效:

    云从科技AI开放平台
    云从科技AI开放平台

    云从AI开放平台

    下载
    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归档工具)、
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
那么自动化,但胜

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

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

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

443

2023.07.18

堆和栈区别
堆和栈区别

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

605

2023.08.10

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

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

891

2024.01.03

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

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

32

2025.12.06

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

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

271

2023.08.16

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

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

221

2023.09.15

oracle怎么分页
oracle怎么分页

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

245

2023.09.18

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

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

464

2023.09.19

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

1

2026.03.13

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 4.3万人学习

Java 教程
Java 教程

共578课时 | 81.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号