0

0

怎么在CentOS安装JDK_CentOS安装Java开发环境步骤教程

爱谁谁

爱谁谁

发布时间:2025-08-28 13:31:01

|

651人浏览过

|

来源于php中文网

原创

答案:在CentOS上安装JDK,推荐使用yum安装OpenJDK,配置环境变量并用alternatives管理多版本。具体步骤包括检查并卸载旧版本Java,通过yum install安装OpenJDK-devel包,或手动解压Oracle JDK后使用alternatives注册;编辑/etc/profile设置JAVA_HOME、PATH和CLASSPATH,执行source /etc/profile生效;通过alternatives --config java切换多版本,确保JAVA_HOME与实际版本一致,避免路径错误和版本冲突,从而完成Java环境的正确部署与管理。

怎么在centos安装jdk_centos安装java开发环境步骤教程

在CentOS上安装JDK,核心步骤通常围绕着选择合适的JDK版本(OpenJDK或Oracle JDK),然后通过包管理器(如

yum
)或手动下载并配置环境变量来完成。我个人经验是,大部分时候,如果你不是有特殊需求,OpenJDK是更便捷、更少麻烦的选择,尤其是在CentOS这种企业级Linux发行版上,它的集成度和兼容性都相当不错。

解决方案

说实话,每次在新的CentOS服务器上部署Java环境,我都会习惯性地深吸一口气,因为这事儿看着简单,但坑也不少。我的习惯是先检查系统里是不是已经有Java了,毕竟有时候一些基础服务可能自带了JRE,或者以前的同事装过。

  1. 检查现有Java环境

    java -version
    which java
    rpm -qa | grep java
    如果看到有旧版本,或者你想彻底清理,可以考虑卸载。
    sudo yum remove java*
    sudo yum autoremove
    (清理依赖) 这一步其实挺重要的,避免新旧版本冲突带来的各种玄学问题。

  2. 选择并安装JDK 我个人更偏向于OpenJDK,倒不是因为它免费开源,而是因为它在CentOS上的集成度确实高出一截,通过

    yum
    安装省心省力。

    • 方法一:使用

      yum
      安装OpenJDK(推荐) 先搜索可用的OpenJDK版本:
      sudo yum search openjdk
      你会看到类似
      java-1.8.0-openjdk-devel
      java-11-openjdk-devel
      等包。
      devel
      后缀通常包含了开发工具(如
      javac
      ),这是我们需要的JDK。 安装你需要的版本,比如Java 8:
      sudo yum install java-1.8.0-openjdk-devel
      或者Java 11:
      sudo yum install java-11-openjdk-devel
      yum
      会自动处理依赖关系,安装完成后,基本上JDK就可用了。

    • 方法二:手动安装Oracle JDK 如果你非要用Oracle JDK,比如项目有特定依赖或者就是喜欢它的性能调优工具,那就得去Oracle官网下载对应的

      tar.gz
      包(需要Oracle账号登录,并且要留意许可协议)。 假设你下载的是
      jdk-8uXXX-linux-x64.tar.gz
      : 创建一个目录来存放JDK:
      sudo mkdir -p /opt/java
      将下载的文件解压到这个目录:
      sudo tar -xzf jdk-8uXXX-linux-x64.tar.gz -C /opt/java
      解压后,目录名可能类似
      jdk1.8.0_XXX
      。 接下来,需要使用
      alternatives
      命令来注册这个JDK,让系统知道它的存在:
      sudo alternatives --install /usr/bin/java java /opt/java/jdk1.8.0_XXX/bin/java 1
      sudo alternatives --install /usr/bin/javac javac /opt/java/jdk1.8.0_XXX/bin/javac 1
      如果需要,还可以为
      jar
      等其他命令注册。

  3. 配置环境变量 这一步是确保系统能找到并正确使用你安装的JDK。通常,我们需要设置

    JAVA_HOME
    和更新
    PATH
    。 编辑
    /etc/profile
    文件,这是系统级的环境变量配置文件,对所有用户生效。
    sudo vi /etc/profile
    在文件末尾添加以下内容(根据你安装的JDK路径调整):

    • OpenJDK路径示例(
      yum
      安装后):
      export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
      (或
      java-11-openjdk
      等)
      export PATH=$JAVA_HOME/bin:$PATH
      export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    • Oracle JDK路径示例(手动安装后):
      export JAVA_HOME=/opt/java/jdk1.8.0_XXX
      export PATH=$JAVA_HOME/bin:$PATH
      export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
      保存并退出。 让修改立即生效:
      source /etc/profile
      如果你只想对当前用户生效,可以编辑
      ~/.bashrc
      ~/.bash_profile
  4. 验证安装

    java -version
    javac -version
    echo $JAVA_HOME
    如果这些命令都能正确输出版本信息和
    JAVA_HOME
    路径,那么恭喜你,Java开发环境就搭建好了。

CentOS上安装JDK,选择OpenJDK还是Oracle JDK更合适?

这真是个老生常谈的问题,但它背后的考量却挺实际。说白了,选择哪个JDK,主要看你的具体需求、项目约束以及对维护便利性的偏好。

OpenJDK,作为Java的开源实现,是CentOS这类Linux发行版默认且推荐的JDK。它的优势在于:

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

  1. 免费与开源: 你可以自由使用、分发,没有许可费用的顾虑。对于大多数企业和个人开发者来说,这省去了不少麻烦。
  2. 易于安装和维护: 通过
    yum
    包管理器,安装OpenJDK简直是傻瓜式操作,
    yum update
    也能轻松升级。这大大降低了维护成本,尤其是在管理大量服务器时。
  3. 社区支持: OpenJDK背后有庞大的社区支持,Bug修复和新特性迭代都非常活跃。
  4. 兼容性: 绝大多数Java应用在OpenJDK上都能运行良好,性能也与Oracle JDK不相上下。

而Oracle JDK,曾经是Java的“官方”实现,但从Java 11开始,它的商业使用策略发生了变化,需要付费许可。它的优势在于:

  1. 性能调优工具: Oracle JDK在一些特定的性能监控和调优工具上可能略有优势,比如Flight Recorder和Mission Control,但这些工具现在也有了OpenJDK的替代品或开源版本。
  2. “历史遗留”: 有些非常老旧的Java应用,可能在Oracle JDK上表现更稳定,但这种情况越来越少见。

我个人的观点是,在CentOS上,如果不是有明确的、不可替代的理由,强烈建议优先选择OpenJDK。 它的安装和管理流程更符合Linux系统的哲学,能让你省去很多不必要的麻烦,把精力放在真正的开发工作上。除非你的项目明确要求Oracle JDK的某个独有特性(这现在已经很少了),或者你已经购买了Oracle的商业支持,否则选择OpenJDK无疑是更明智、更经济的选择。

如何正确配置CentOS中的Java环境变量,避免常见问题?

配置Java环境变量,特别是

JAVA_HOME
PATH
,是安装JDK后至关重要的一步,也是新手最容易出错的地方。正确的配置能确保你的系统能找到
java
javac
等命令,并且各种Java应用程序也能正确识别JDK的安装路径。

核心要点就是:

凌夕卡密微商城
凌夕卡密微商城

卡密微商城支持三级分销,拥有唯一的推广链接,一次推广,三级奖励,可以查看下级会员统计信息,购买卡密之后自动显示卡密信息,无需等待,支持卡密充值、支付宝充值,可以在线提现。开发语言:JAVA开发框架:Struts2+Spring+Hibernate后台用到Freemarker模板引擎服务器环境:JDK1.7Tomcat7.0Mysql5.1演示网站用户名:admin,密码:222222安装教程:1、

下载
  1. JAVA_HOME
    :指定JDK的根目录。 这个变量告诉系统JDK安装在哪里。比如,如果你通过
    yum
    安装了OpenJDK 8,它的路径可能是
    /usr/lib/jvm/java-1.8.0-openjdk
    。如果你手动安装了Oracle JDK,路径可能是
    /opt/java/jdk1.8.0_XXX
    常见错误:

    • 路径不正确: 比如指向了JRE目录而不是JDK目录,或者路径中多了一个
      /bin
      JAVA_HOME
      应该指向JDK的根目录,而不是
      bin
      子目录。
    • 版本不匹配: 系统里装了多个JDK,但
      JAVA_HOME
      指向了你不想用的那个。
    • 忘记
      export
      只是定义了变量,但没有
      export
      ,导致变量只在当前shell会话中有效,子进程无法继承。
  2. PATH
    :将JDK的
    bin
    目录添加到系统命令搜索路径。
    这个变量告诉shell去哪里寻找可执行文件。通过将
    $JAVA_HOME/bin
    添加到
    PATH
    ,你就可以直接在任何地方运行
    java
    javac
    等命令,而不需要输入完整的路径。 常见错误:

    • 顺序问题: 最好将
      $JAVA_HOME/bin
      放在
      $PATH
      的前面(
      export PATH=$JAVA_HOME/bin:$PATH
      ),这样可以确保系统优先使用你指定的JDK版本,而不是可能存在的旧版本或系统自带的JRE。
    • 重复添加: 多次添加
      $JAVA_HOME/bin
      PATH
      虽然不影响功能,但显得不够整洁。
  3. CLASSPATH
    :指定Java类库的搜索路径。 这个变量告诉JVM在哪里寻找
    .class
    文件或
    .jar
    包。通常,它包含当前目录(
    .
    )以及JDK自带的一些核心工具库(如
    dt.jar
    tools.jar
    )。 常见错误:

    • 过度依赖: 现代Java开发工具(如Maven、Gradle)通常会自动管理项目的
      CLASSPATH
      ,所以很多时候你不需要手动设置这个系统级的
      CLASSPATH
      。如果设置不当,反而可能导致类加载冲突。
    • 路径不完整: 缺少
      .
      或者重要的
      jar
      包路径。

配置文件的选择:

  • /etc/profile
    全局配置文件,对所有用户生效。每次系统启动或用户登录时执行。适合配置系统级的环境变量。
  • ~/.bashrc
    ~/.bash_profile
    用户级别的配置文件,只对当前用户生效。
    ~/.bashrc
    通常在每次打开新的终端时执行,而
    ~/.bash_profile
    在用户登录时执行。

我个人的建议是,如果你是服务器管理员,并且希望所有用户都能使用同一个JDK版本,那么修改

/etc/profile
是最合适的。 修改后,记得运行
source /etc/profile
来立即应用更改,或者直接重启服务器。在配置时,务必仔细检查路径,多用
echo $JAVA_HOME
echo $PATH
来验证。我记得有一次,就是因为
JAVA_HOME
的路径多了一个斜杠,排查了半天,最后才发现是这种低级错误,所以细心点总没错。

CentOS安装多个Java版本时,如何进行版本切换和管理?

在CentOS上,尤其是开发或测试环境中,我们经常会遇到需要同时安装并管理多个Java版本的情况。比如,有的项目还在用Java 8,而新项目已经切换到Java 11或17了。CentOS提供了一个非常方便的工具来处理这种情况,那就是

alternatives
命令。

alternatives
系统是Linux发行版用来管理系统中不同程序版本或实现的一种机制。它通过创建符号链接来指向你选择的特定版本。

  1. 注册新的Java版本 当你手动安装了一个新的JDK(比如Oracle JDK),或者通过

    yum
    安装了不同版本的OpenJDK,你需要将它们注册到
    alternatives
    系统中。 例如,你手动安装了一个Oracle JDK 1.8.0_XXX到
    /opt/java/jdk1.8.0_XXX
    sudo alternatives --install /usr/bin/java java /opt/java/jdk1.8.0_XXX/bin/java 1
    sudo alternatives --install /usr/bin/javac javac /opt/java/jdk1.8.0_XXX/bin/javac 1
    这里的参数解释一下:

    • --install
      :表示安装一个新的替代项。
    • /usr/bin/java
      :这是公共的符号链接路径,系统会通过这个路径来找到
      java
      命令。
    • java
      :这是一个名称,用来标识这个替代项组。
    • /opt/java/jdk1.8.0_XXX/bin/java
      :这是实际的
      java
      可执行文件的路径。
    • 1
      :这是优先级,数字越大优先级越高。

    如果你通过

    yum
    安装了多个OpenJDK版本,它们通常会自动注册到
    alternatives
    中。

  2. 查看和切换Java版本 要查看当前系统中注册的所有Java版本,并进行切换,可以使用

    alternatives --config
    命令。
    sudo alternatives --config java
    sudo alternatives --config javac

    执行这些命令后,你会看到一个列表,显示所有已注册的Java可执行文件及其对应的编号。例如:

    There are 2 programs which provide 'java'.
    
      Selection    Command
    -----------------------------------------------
       1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-3.el7_9.x86_64/jre/bin/java
     * 2           /usr/lib/jvm/java-11-openjdk-11.0.12.0.7-0.el7_9.x86_64/bin/java
    
    Enter to keep the current selection[+], or type selection number:

    星号

    *
    表示当前正在使用的版本。你可以输入对应的数字来切换到你想要的版本,然后按回车。

  3. 管理

    JAVA_HOME
    虽然
    alternatives
    可以管理
    java
    javac
    命令的符号链接,但它通常不会自动设置
    JAVA_HOME
    环境变量。
    JAVA_HOME
    仍然需要手动配置。 如果你经常需要在不同项目之间切换JDK,我通常会建议你:

    • /etc/profile
      中设置一个默认的
      JAVA_HOME
      ,指向你最常用的那个JDK。
    • 在每个项目的启动脚本或用户级别的
      .bashrc
      中覆盖
      JAVA_HOME
      ,指向该项目所需的特定JDK版本。 例如,在你的项目启动脚本中,可以这样设置:
      export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
      export PATH=$JAVA_HOME/bin:$PATH
      这样,即使系统默认是Java 11,你的项目也能正确使用Java 8。

    通过这种方式,

    alternatives
    负责系统级的命令链接,而
    JAVA_HOME
    则通过环境变量在全局或项目级别进行精确控制,两者结合,就能非常灵活地管理CentOS上的多个Java版本了。这套组合拳,我用下来感觉是最稳妥的。

热门AI工具

更多
DeepSeek
DeepSeek

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

豆包大模型
豆包大模型

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

WorkBuddy
WorkBuddy

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

腾讯元宝
腾讯元宝

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

文心一言
文心一言

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

讯飞写作
讯飞写作

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

即梦AI
即梦AI

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

ChatGPT
ChatGPT

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

相关专题

更多
Java Maven专题
Java Maven专题

本专题聚焦 Java 主流构建工具 Maven 的学习与应用,系统讲解项目结构、依赖管理、插件使用、生命周期与多模块项目配置。通过企业管理系统、Web 应用与微服务项目实战,帮助学员全面掌握 Maven 在 Java 项目构建与团队协作中的核心技能。

0

2025.09.15

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

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

870

2024.01.03

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

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

30

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、使用第三方工具等。本专题还提供其他查看表操作的文章,大家可以免费阅读。

463

2023.09.19

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

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

450

2023.09.19

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

热门下载

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

精品课程

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

共61课时 | 4.3万人学习

Java 教程
Java 教程

共578课时 | 81.1万人学习

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

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