讲师中心 微信公众号

工具推荐

视频效率加速
updream

一键生成高质量推广成片

Seko
Seko

AI短剧一键生成成片

立刻MV
立刻MV

低成本歌曲 MV、视频生成

剧云
剧云

中文短剧剧本制作平台

linux怎么安装Java开发环境_linux配置openjdk版本【实操】

胖磊大大_8828

胖磊大大_8828

发布时间:2026-03-13 16:16:31

|

413人浏览过

|

来源于php中文网

原创

要确认系统自带Java是否为OpenJDK,需先检查javac是否存在,再通过readlink -f $(which java)查看路径是否含“openjdk”,并确保java与javac同源。

linux怎么安装java开发环境_linux配置openjdk版本【实操】

怎么确认系统自带的 Java 是不是 OpenJDK

很多 Linux 发行版预装了 Java,但默认可能是 JRE(没 javac),也可能是 Oracle JDK(已停更)、或 OpenJDK 但版本太老。直接运行 java -version 和 which java 只能看到“有”,看不到“能不能开发”。关键要看有没有 javac,以及 java 和 javac 是否来自同一套 JDK。

  • 运行 javac -version —— 如果报 command not found,说明只有 JRE,不能编译代码
  • 运行 readlink -f $(which java) —— 看路径里是否含 openjdk;比如 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 就是 OpenJDK 17
  • 对比 which java 和 which javac 输出路径的父目录是否一致,不一致说明环境混乱

Ubuntu/Debian 上用 apt 安装 OpenJDK 开发包

别只装 openjdk-17-jre,那是运行时;开发必须装 -jdk 后缀的包,它自带 javac、javadoc、jshell 等全套工具。

  • 查可用版本:apt list -a openjdk-*-jdk(会列出 openjdk-17-jdk、openjdk-21-jdk 等)
  • 装 JDK 17(推荐 LTS 版本):sudo apt install openjdk-17-jdk
  • 装完验证:java -version 和 javac -version 输出应一致,且都带 openjdk 字样
  • 注意:Ubuntu 22.04 默认源里没有 OpenJDK 21,要加 ppa:openjdk-r/ppa 才能装;但多数项目用 17 更稳

CentOS/RHEL/Rocky Linux 怎么装 OpenJDK 17

RHEL 系发行版默认仓库里的 OpenJDK 版本偏旧(比如 CentOS 7 是 1.8,Rocky 9 自带的是 17,但可能缺 javac),不能只信 yum search java 的结果。

  • RHEL 8/9 或 Rocky 9+:sudo dnf install java-17-openjdk-devel(注意是 -devel,不是 -headless 或 -static-libs)
  • CentOS 7 或 RHEL 7:官方源最老只到 OpenJDK 1.8,必须手动装或换源;推荐用 SDKMAN(见下一条)
  • 装完检查:rpm -ql java-17-openjdk-devel | grep bin/ 应该列出 javac、jar 等可执行文件
  • 别用 java-17-openjdk-headless —— 它删掉了 AWT/Swing 和编译器,javac 直接消失

多个 OpenJDK 版本共存时怎么切版本

装了多个 JDK(比如 11 和 17),java 命令默认走哪个,取决于 update-alternatives 配置或 $PATH 顺序,不是靠改 JAVA_HOME 就能切换的。

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

  • 先看当前生效的:update-alternatives --config java 和 update-alternatives --config javac 要分别执行,确保两者指向同一版本
  • 如果没配置过 alternatives,就手动设 JAVA_HOME:export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java)))),然后加进 ~/.bashrc
  • IDE(如 IntelliJ)和构建工具(如 Maven)可能缓存旧的 JAVA_HOME,改完要重启终端、IDE,甚至清 ~/.m2 缓存
  • 脚本里别硬编码 /usr/lib/jvm/java-17-openjdk —— 不同发行版路径不同,用 $(dirname $(dirname $(readlink -f $(which java)))) 更可靠

最容易被忽略的是:JDK 包名在不同发行版里差异很大,-jdk、-devel、-headless 这些后缀含义完全不同;装错一个字,javac 就不存在。动手前先 apt list 或 dnf search 确认包名,比事后排查快得多。

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

码上飞
码上飞 Hot

一款基于自然语言的AI应用开发平台,可根据用户描述自动生成应用程序,帮助个人和团队快速完成应用原型与开发。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

相关专题

更多
Java Maven专题
Java Maven专题

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

4680

2025.09.15

Java Maven/Gradle 构建与依赖管理合集
Java Maven/Gradle 构建与依赖管理合集

系统讲解 Java 项目构建工具的使用与进阶配置,涵盖 Maven 的 POM 文件结构、生命周期(clean/compile/package/install/deploy)与插件机制、依赖范围(compile/provided/test/runtime)与传递依赖管理、多模块聚合与继承、私有 Nexus 仓库发布,以及 Gradle 的 Groovy / Kotlin DSL 语法、Task 自定义与增量构建、依赖版本目录(Versi

389

2026.05.09

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

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

1141

2023.08.16

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

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

3433

2023.09.15

oracle怎么分页
oracle怎么分页

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

3430

2023.09.18

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

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

1949

2023.09.19

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

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

2553

2023.09.19

oracle imp
oracle imp

imp是Oracle数据库中的一个命令行工具,用于将导出的数据和对象从一个数据库实例导入到另一个数据库实例。imp命令的一般语法为“imp username/password@connect_string file=file_name [options]”。

3589

2023.09.19

Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

0

2026.11.12

热门下载

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

精品课程

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

共0课时 | 0人学习

phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

安装 Xdebug 并配置 phpstorm
安装 Xdebug 并配置 phpstorm

共1课时 | 207人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn