我使用的是 Fedora Workstation 40,但類似的步驟適用於大多數主要 Linux 發行版,如 Ubuntu/Mint 等
在某些 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 之間的差異:
在 Fedora 中,JRE/JDK 儲存在 /usr/lib/jvm 中。所以你可以查看它的內容或查詢它們:
find /usr/lib/jvm -name java find /usr/lib/jvm -name javac
我使用的是 Fedora 40,其中套件管理器是 dnf。您將透過各自的 Linux 發行版的套件管理器(例如 Ubuntu/Debian 的 apt)安裝所需的 OpenJDK:
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 工具集
# 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
造訪官方 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 位置。您也可以在專案結構中配置的 JDK 下方新增現有的 JDK 資料夾位置,例如 /usr/lib/jvm/jdk-11-oracle-x64
Linux 中的 update-alternatives 指令(在 Fedora 中也稱為替代品)建立、刪除、維護和顯示有關構成替代品系統的符號連結的資訊。
單一系統上可以同時安裝多個實現相同或類似功能的程式。檔案系統中的通用名稱由提供可互換功能的所有檔案共用。替代系統有助於確定該通用名稱引用了哪個實際文件。
有用的參考:
當您透過套件管理器安裝 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
如果您按照 update-alternatives 方法在 Java 安裝之間進行管理並且所有條目均已完成,則不需要執行此操作
但是,要在 shell 設定檔中手動設定配置,您可以執行以下操作:
java --version # OR "java -version" for older java javac --version
find /usr/lib/jvm -name java find /usr/lib/jvm -name javac
dnf search jdk
以上是在 Linux 上安裝和管理 Java JDK 的首選方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!