在 Linux 上安装和管理 Java JDK 的首选方式
我使用的是 Fedora Workstation 40,但类似的步骤适用于大多数主要 Linux 发行版,如 Ubuntu/Mint 等
检查现有的 Java 安装
在一些 Linux 发行版上,Java 是默认安装的;然而它只是JRE,而不是JDK。您可以验证这一点,因为找到了 java 命令,但未找到 javac 命令。
java # would show manual of arguments javac # would give not found error if JDK not installed
java --version # OR "java -version" for older java javac --version
参考以下文章了解 JDK、JRE 和 JVM 之间的区别:
- Java 编程环境和 Java 运行时环境 (JRE)
- Java 中的 JDK、JRE、JVM 和 JIT 是什么?
在 Fedora 中,JRE/JDK 存储在 /usr/lib/jvm 中。所以你可以查看它的内容或查询它们:
find /usr/lib/jvm -name java find /usr/lib/jvm -name javac
安装 OpenJDK
我使用的是 Fedora 40,包管理器是 dnf。您将通过各自的 Linux 发行版的包管理器(例如 Ubuntu/Debian 的 apt)安装所需的 OpenJDK:
- 搜索可用的 JDK 进行安装:
dnf search jdk
您将获得可安装的软件包列表,其中包含各种 Java 版本以及软件包中的变体后缀。无头变体通常只包含 JRE。要安装完整的 JDK 以及 Java 开发所需的所有工具,我们需要包的开发变体,通常在 dnf 名称中包含 -devel 术语后缀。以下是 dnf 输出中 Java 17 OpenJDK 的几个包变体名称的列表:
java-17-openjdk.x86_64 : OpenJDK 17 Runtime Environment java-17-openjdk-devel.x86_64 : OpenJDK 17 Development Environment java-17-openjdk-devel-fastdebug.x86_64 : OpenJDK 17 Development Environment optimised with full debugging on java-17-openjdk-devel-slowdebug.x86_64 : OpenJDK 17 Development Environment unoptimised with full debugging on java-17-openjdk-fastdebug.x86_64 : OpenJDK 17 Runtime Environment optimised with full debugging on java-17-openjdk-headless.x86_64 : OpenJDK 17 Headless Runtime Environment java-17-openjdk-headless-fastdebug.x86_64 : OpenJDK 17 Runtime Environment optimised with full debugging on java-17-openjdk-headless-slowdebug.x86_64 : OpenJDK 17 Runtime Environment unoptimised with full debugging on java-17-openjdk-javadoc.x86_64 : OpenJDK 17 API documentation java-17-openjdk-portable.x86_64 : OpenJDK 17 Runtime Environment portable edition java-17-openjdk-portable-devel.x86_64 : OpenJDK 17 Development Environment portable edition java-17-openjdk-portable-sources.x86_64 : OpenJDK 17 full patched sources of portable JDK java-17-openjdk-slowdebug.x86_64 : OpenJDK 17 Runtime Environment unoptimised with full debugging on java-17-openjdk-src.x86_64 : OpenJDK 17 Source Bundle java-17-openjdk-src-fastdebug.x86_64 : OpenJDK 17 Source Bundle for packages with debugging on and optimisation java-17-openjdk-src-slowdebug.x86_64 : OpenJDK 17 Source Bundle for packages with debugging on and no optimisation
在 Ubuntu 上,软件包较少,您要安装的软件包通常命名为 openjdk-17-jdk,用于整个 JDK 工具集
- 从该列表中安装您想要的 OpenJDK 包
# Installing the latest OpenJDK with optimized debugging sudo dnf install java-latest-openjdk-devel-fastdebug # Installing a specific version like OpenJDK 17 sudo dnf install java-17-openjdk-devel
- 通过检查是否找到 java 和 javac 命令来验证安装
安装 Oracle JDK
访问官方 Oracle SE 下载页面。找到您所需的 Java 版本的下载部分
下载适合您平台的软件包。对于基于 RedHat 的 Linux 发行版(例如 Fedora),请下载 .rpm 软件包(对于 Ubuntu/Debian,则下载 .deb)。下载之前,您必须登录 Oracle 并同意条款
双击下载的文件(如 jdk-11.0.24_linux-x64_bin.rpm)并选择安装。它将安装并配置 Oracle JDK。
现在 OracleJDK 已安装,验证检测到的 java 和 javac 命令
通过 IntelliJ 安装 JDK
您还可以从 IntelliJ 本身安装 JDK:
- 单击齿轮图标 ⚙️,然后进入项目结构。选择 SDK,单击加号图标。然后选择你要下载安装的JDK
- JDK安装在~/.jdks文件夹中,例如:~/.jdks/openjdk-20.0.2/
IntelliJ 自动检测系统上可用的 JDK 位置。您还可以在项目结构中配置的 JDK 下添加现有的 JDK 文件夹位置,例如 /usr/lib/jvm/jdk-11-oracle-x64
使用多个 Java 安装
Linux 中的 update-alternatives 命令(在 Fedora 中也称为替代品)创建、删除、维护和显示有关构成替代品系统的符号链接的信息。
单个系统上可以同时安装多个实现相同或相似功能的程序。文件系统中的通用名称由提供可互换功能的所有文件共享。替代系统有助于确定该通用名称引用了哪个实际文件。
有用的参考:
- 更新替代品 - Linux 手册页
- Linux - RedHat 中的替代命令介绍
当您通过包管理器安装 OpenJDK 或从下载的文件中安装 Oracle-JDK 时,替代方案应在此过程中自动更新
查看命令的可用选项
java # would show manual of arguments javac # would give not found error if JDK not installed
输出如下:
java --version # OR "java -version" for older java javac --version
类似地,请参阅 javac 的替代选项列表
为命令添加替代条目
如果您的命令的任何替代项未在列表中注册,您可以手动将其添加为:
find /usr/lib/jvm -name java find /usr/lib/jvm -name javac
例如,我从 IntelliJ 中下载了 JetBrains Runtime (JCEF) JDK,下载位置为 ~/.jdks/jbrsdk_jcef-17.0.12/ 文件夹;但它没有出现在替代品列表中。因此,我将添加 java 和 javac 的替代条目:
dnf search jdk
同样,根据需要添加更多命令的替代项,例如 jar、javadoc 等
您还可以添加关注者链接:
--安装链接名称路径优先级 [--follower 链接名称路径]... [--initscript 服务] [--系列名称]
在命令的可用替代方案之间切换
在现有的 Java 安装之间进行选择
java-17-openjdk.x86_64 : OpenJDK 17 Runtime Environment java-17-openjdk-devel.x86_64 : OpenJDK 17 Development Environment java-17-openjdk-devel-fastdebug.x86_64 : OpenJDK 17 Development Environment optimised with full debugging on java-17-openjdk-devel-slowdebug.x86_64 : OpenJDK 17 Development Environment unoptimised with full debugging on java-17-openjdk-fastdebug.x86_64 : OpenJDK 17 Runtime Environment optimised with full debugging on java-17-openjdk-headless.x86_64 : OpenJDK 17 Headless Runtime Environment java-17-openjdk-headless-fastdebug.x86_64 : OpenJDK 17 Runtime Environment optimised with full debugging on java-17-openjdk-headless-slowdebug.x86_64 : OpenJDK 17 Runtime Environment unoptimised with full debugging on java-17-openjdk-javadoc.x86_64 : OpenJDK 17 API documentation java-17-openjdk-portable.x86_64 : OpenJDK 17 Runtime Environment portable edition java-17-openjdk-portable-devel.x86_64 : OpenJDK 17 Development Environment portable edition java-17-openjdk-portable-sources.x86_64 : OpenJDK 17 full patched sources of portable JDK java-17-openjdk-slowdebug.x86_64 : OpenJDK 17 Runtime Environment unoptimised with full debugging on java-17-openjdk-src.x86_64 : OpenJDK 17 Source Bundle java-17-openjdk-src-fastdebug.x86_64 : OpenJDK 17 Source Bundle for packages with debugging on and optimisation java-17-openjdk-src-slowdebug.x86_64 : OpenJDK 17 Source Bundle for packages with debugging on and no optimisation
输出如下所示。请注意,* 表示最佳可用版本并表示您当前的选择:
# Installing the latest OpenJDK with optimized debugging sudo dnf install java-latest-openjdk-devel-fastdebug # Installing a specific version like OpenJDK 17 sudo dnf install java-17-openjdk-devel
类似地,在 javac 的替代选项中进行选择
当您卸载/删除 JDK 软件包时,请记住也删除相应的替代条目
删除替代条目
例如,要删除 JCEF JDK 的 java 命令替代条目:
java # would show manual of arguments javac # would give not found error if JDK not installed
将 Java 添加到路径
如果您按照 update-alternatives 方法在 Java 安装之间进行管理并且所有条目均已完成,则不需要执行此操作
但是,要在 shell 配置文件中手动设置配置,您可以执行以下操作:
- 在 Shell 配置文件中设置环境变量(即 ~/.zshrc、~/.bashrc 等)
java --version # OR "java -version" for older java javac --version
- 重新启动SHELL:
find /usr/lib/jvm -name java find /usr/lib/jvm -name javac
- 现在应该成功检测到java了
dnf search jdk
以上是在 Linux 上安装和管理 Java JDK 的首选方式的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

公司安全软件导致部分应用无法正常运行的排查与解决方法许多公司为了保障内部网络安全,会部署安全软件。...

将姓名转换为数字以实现排序的解决方案在许多应用场景中,用户可能需要在群组中进行排序,尤其是在一个用...

系统对接中的字段映射处理在进行系统对接时,常常会遇到一个棘手的问题:如何将A系统的接口字段有效地映�...

在使用MyBatis-Plus或其他ORM框架进行数据库操作时,经常需要根据实体类的属性名构造查询条件。如果每次都手动...

在使用IntelliJIDEAUltimate版本启动Spring...

Java对象与数组的转换:深入探讨强制类型转换的风险与正确方法很多Java初学者会遇到将一个对象转换成数组的�...

电商平台SKU和SPU表设计详解本文将探讨电商平台中SKU和SPU的数据库设计问题,特别是如何处理用户自定义销售属...

在使用TKMyBatis进行数据库查询时,如何优雅地获取实体类变量名以构建查询条件,是一个常见的难题。本文将针...
