首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

SDK 與 JDK 區別深度解析:從定義到實際開發選型

     編輯:Java 相關知識

核心結論先行

JDK 是 SDK 的一個子集(特定實現)。SDK 是統稱,JDK 是針對 Java 開發的具體 SDK。

概念定義

術語全稱定義包含內容
SDKSoftware Development Kit
軟件開發工具包
幫助開發特定平台/語言/框架應用的工具、庫、文檔、示例的集合。是一個泛稱。編譯器、調試器、庫、API 文檔、示例代碼、構建工具、模擬器等
JDKJava Development Kit
Java 開發工具包
Sun/Oracle 官方提供的、用於開發 Java 應用程序的具體 SDK 實現。javac、java、jar、javadoc、JRE (JVM+核心庫)、標準庫源碼、工具類

形象類比

把 SDK 比作「機床」,JDK 比作「裝在機床上專門加工 Java 零件的刀具套裝」:

  • 機床(SDK)是通用平台,可以裝不同刀具生產不同產品。
  • 要生產 Java 程序,必須在機床上裝 JDK 刀具套裝。
  • Eclipse IDE 本身是另一套 SDK(eclipse-SDK),它不包含 JDK,安裝 Eclipse 後還需單獨配置 JDK 路徑才能開發 Java。

Java 生態中的各種 SDK

實際開發中的常見困惑與解答

Q1: 安裝了 JDK,還需要單獨下載「Java SDK」嗎?

A: 不需要。JDK 就是 Java SDK。網上有時會見到「Java SE SDK」字樣,指的就是 JDK。

Q2: JRE、JDK、SDK 三者關係?

  • JRE (Java Runtime Environment) = JVM + 核心類庫,只能運行** Java 程序,不能開發。
  • JDK = JRE + 開發工具(javac、javadoc、jdb 等),能開發也能運行**。
  • SDK = 統稱。JDK 是一種 SDK。

生產環境服務器通常只安裝 JRE(或 JDK 的精簡版 JRE),開發機必須安裝完整 JDK。

Q3: 為什麼 Eclipse/IDEA 安裝後還要配置 JDK?

IDE 本身是用 Java 寫的(運行在 JVM 上),但編譯你的項目代碼需要 javac,調試需要 JDK 工具鏈。IDE 只是「會用刀具的工人」,刀具(JDK)得你自己備好並告訴工人放哪兒。

Q4: 什麼是「Java EE SDK」?它包含 JDK 嗎?

早期 Oracle 發布的 Java EE SDK 打包了 JDK + GlassFish 應用服務器 + EE API 實現,一鍵安裝即可開發企業級應用。現代開發多用 Maven/Gradle 管理依賴,單獨下載 JDK + 獨立應用服務器(Tomcat、WildFly)更靈活。

版本選型建議(2024 視角)

  • LTS 版本優先:JDK 8、11、17、21 為長期支持版,企業級項目首選 17 或 21。
  • 發行商選擇:Oracle JDK(商業用途需付費)、Eclipse Temurin (Adoptium)、Amazon Corretto、Azul Zulu、Red Hat Build 等 OpenJDK 構建版,功能基本一致,選擇團隊熟悉、有安全更新承諾的即可。
  • 模塊化系統:JDK 9+ 引入模塊系統 (module-info.java),遷移舊項目需關注 --add-opens、--add-exports 等啟動參數。

環境變量配置速查

# Windows (假設安裝在 C:\Java\jdk-21)
JAVA_HOME=C:\Java\jdk-21
PATH=%JAVA_HOME%\bin;%PATH%

# Linux/macOS (~/.bashrc 或 ~/.zshrc)
export JAVA_HOME=/usr/lib/jvm/jdk-21
export PATH=$JAVA_HOME/bin:$PATH

驗證:java -version、javac -version 輸出版本一致即配置成功。

總結

  • SDK 是「工具包」的統稱,JDK 是「Java 開發工具包」的具體實現。
  • 開發 Java 程序 必須 有 JDK,JRE 只能運行。
  • IDE、構建工具、應用服務器都是運行在 JDK/JRE 之上的上層工具,它們各自也有自己的 SDK 概念(如 Android SDK、Spring Boot SDK 指 starter 依賴集合)。
  • 記住口訣:「JDK 是 Java 的 SDK,裝 JDK 就等於裝了 Java SDK」。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
SDK 名稱針對平台/用途關係
JDK (Java SE Development Kit)標準版 Java 桌面/服務端開發核心基礎 SDK
Java EE SDK / Jakarta EE SDK企業級應用開發(Servlet、JPA、CDI 等)包含 JDK + EE 規範實現庫 + 應用服務器
Android SDKAndroid 應用開發包含 JDK 子集 + Android API + 模擬器 + 構建工具
Flutter SDK / Dart SDK跨平台 UI 開發獨立 SDK,與 JDK 無直接關係