這是歷史版本頁面 — 看 Java Development Kit (64-bit) 最新版本
寫Java程式一直編譯失敗,JDK到底該不該裝
你剛開始學Java,興沖沖地裝了Eclipse或IntelliJ IDEA,照著教學影片打了第一支Hello World,按下執行卻跳出「javac不是內部或外部命令」,或者直接顯示找不到Java執行環境。你上網查,有人說要裝JDK,有人說裝JRE就夠,還有人叫你改環境變數——但你連這些名詞在講什麼都還搞不清楚,只想知道為什麼寫個程式這麼麻煩。
多數人習慣直接裝一套IDE就開始寫,但IDE本身只是編輯器,真正負責把原始碼編譯成可執行檔、提供除錯工具和執行環境的,是底層那套開發工具包。沒有它,你寫的程式碼就只是一堆文字檔。這類工具的核心工作,就是補齊從「寫完程式」到「跑得起來」之間那段看不見的基礎建設——編譯、執行、除錯、看文件,全部靠它。
01JDK和JRE到底差在哪裡,我該裝哪一個?
JDK是完整的開發環境,包含編譯器、除錯工具、函式庫和JRE;JRE只是JDK的子集,只提供執行Java程式的必要元件。如果你要寫程式、編譯原始碼,必須裝JDK;如果只是要執行別人寫好的Java程式,裝JRE就夠了。以你的情況——會寫到javac指令——需要的是JDK。
02這套軟體裝完之後,具體能幫我做到哪些事?
它提供Java編譯器,把.java原始碼轉成可在JVM上執行的位元組碼;內含JRE讓你能在本機執行Java應用程式;附帶大量函式庫和API,涵蓋資料庫存取、網路通訊、GUI開發等;還有jdb、jstack等除錯工具,以及JConsole、VisualVM等效能分析工具。另外包含完整的Java API文件,查類別和方法用法時不必另外上網。
03它跟Eclipse、IntelliJ IDEA這些IDE是什麼關係?
它本身不包含IDE,但設計上就是為了跟這些工具搭配。Eclipse、IntelliJ IDEA、NetBeans等IDE在背後呼叫JDK的編譯器和工具來完成建置與執行。你裝好JDK後,在IDE裡指定JDK路徑,IDE就能用它來編譯和執行你的程式。兩者是互補關係,不是二選一。
0464位元版本跟32位元有什麼差別,我該怎麼選?
資料中沒有針對64位元與32位元差異的詳細說明。一般來說,64位元版本能使用更大的記憶體空間,如果你的作業系統是64位元,且需要處理大型專案或大量資料,通常會選擇64位元版本。但具體支援情況和安裝需求,建議到Oracle官方網站確認你的系統相容性。
05它的除錯工具實際上是怎麼用的?
它提供jdb(Java除錯器)和jstack(執行緒堆疊分析工具)。jdb讓你在命令列中設定中斷點、逐步執行、檢視變數值,適合不習慣用IDE內建除錯器的人;jstack則用來查看JVM執行緒狀態,可以找出死結或執行緒卡住的原因。另外JConsole和VisualVM提供圖形化介面,可以監看記憶體使用量、CPU負載和執行緒狀態。
06完全沒寫過程式的新手,適合直接碰這套軟體嗎?
可以裝,但要有心理準備。資料中明確提到,設定環境變數對初學者來說有挑戰性,安裝過程也需要手動設定。如果你只是跟著教學走,照步驟設定JAVA_HOME和PATH,通常能順利完成。但如果你對命令列操作不熟悉,第一次設定環境變數可能會卡一段時間。建議先找一篇完整的安裝教學照著做。
07商業用途可以免費使用嗎?
可以免費下載和使用,但商業使用時必須遵守Oracle的授權條款。資料中強調,JDK 20之後的版本在Oracle No-Fee條款下,可以在生產環境免費使用和重新散布,但授權條款細節需要自行審閱。如果你的公司要拿它來開發商業軟體,建議讓法務或主管確認授權內容,不要直接當作完全免費。
08我只是想跑別人寫好的Java程式,不寫程式,需要裝這個嗎?
不需要。如果你不寫程式、不編譯原始碼,只需要執行Java應用程式,裝JRE就夠了。JDK包含了JRE,但體積更大、安裝更複雜。資料中明確指出JRE是JDK的子集,只提供執行所需的元件。先確認你的需求是「執行」還是「開發」,再決定要裝哪一個。
09我已經在用OpenJDK了,還需要換成這套嗎?
不一定。資料的FAQ中提到,OpenJDK、Amazon Corretto、IBM SDK for Java都是功能相近的替代方案。如果你目前的OpenJDK能正常編譯和執行你的專案,沒有必要更換。Oracle JDK和OpenJDK在核心功能上高度重疊,選擇哪一套通常取決於你對授權條款、更新頻率和技術支援的需求。
10這套軟體只有英文介面,看不懂英文的人該怎麼辦?
它的介面確實是英文,但實際使用上,你主要接觸的是命令列工具和IDE整合,不是圖形介面操作。javac、java這些指令的錯誤訊息是英文,API文件也是英文。如果你英文閱讀有困難,可以搭配中文教學網站或書籍學習,但長期寫Java程式,英文文件閱讀能力幾乎是必需的,這點要先有心理準備。
11我的電腦硬碟空間不多,裝這個會不會很佔空間?
資料中有提到,它的安裝套件相對較大,需要可觀的磁碟空間。具體需要多少空間,資料中沒有提供數字,建議到官方下載頁面查看安裝需求。如果你的硬碟空間有限,可以考慮只裝JRE(如果不需要開發),或選擇體積較小的OpenJDK發行版。安裝前先確認剩餘空間,避免裝到一半失敗。
12我朋友說用Android Studio寫Java也行,那我還需要另外裝這個嗎?
ndroid Studio本身是開發Android應用程式的IDE,它會綁定或要求安裝特定的JDK版本。資料中將Android Studio列為功能相近的軟體,但它的定位是Android開發,不是一般Java應用程式開發。如果你要寫的是桌面或伺服器端的Java程式,Android Studio並不適合;如果你要開發Android App,那Android Studio會處理JDK的配置,通常不需要手動另外安裝。
下載與官方連結
前往官方網站 下載 Java Development Kit (64-bit)
jdk-16_windows-x64_bin.exe · 連結指向軟體原廠
版本紀錄
- 2026-10-24 Java JDK 27.0.1 (64-bit) 187.56 MB
- 2026-09-15 Java JDK 27 (64-bit) 187.54 MB
- 2026-08-20 Java JDK 26.0.2.1 (64-bit) 188.75 MB
再看 5 筆
- 2026-07-22 Java JDK 26.0.2 (64-bit) 188.73 MB
- 2026-04-22 Java JDK 26.0.1 (64-bit) 188.65 MB
- 2026-03-18 Java JDK 26 (64-bit) 188.68 MB
- 2025-09-18 Java JDK 25 (64-bit) 182.25 MB
- 2025-07-16 Java JDK 24.0.2 (64-bit) 205.86 MB
這一版改了什麼
What's new in this version:
New Features and Enhancements:
- JEP 396: Strongly Encapsulate JDK Internals by Default
- JEP 390: Warnings for Value-based Classes
- Add InvocationHandler::invokeDefault Method for Proxy's Default Method Support
- JEP 380: Unix domain sockets
- Day Period Support Added to java.time Formats
- Add Stream.toList() Method
- JEP 338: Vector API (Incubator)
- Improved CompileCommand Flag
- JEP 376: ZGC Concurrent Stack Processing
- Concurrently Uncommit Memory in G1
- JEP 387: Elastic Metaspace
- Signed JAR Support for RSASSA-PSS and EdDSA
- SUN, SunRsaSign, and SunEC Providers Supports SHA-3 Based Signature Algorithms
- jarsigner Preserves POSIX File Permission and symlink Attributes
- Added -trustcacerts and -keystore Options to keytool -printcert and -printcrl Commands
- SunPKCS11 Provider Supports SHA-3 Related Algorithms
- Improve Certificate Chain Handling
- Improve Encoding of TLS Application-Layer Protocol Negotiation (ALPN) Values
- TLS Support for the EdDSA Signature Algorithm
- JEP 397: Sealed Classes (Second Preview)
- JEP 395: Records
- JEP 394: Pattern Matching for instanceof
- JEP 392: Packaging Tool
Removed Features and Options:
- Removal of java.awt.PeerFixer
- Removal of Experimental Features AOT and Graal JIT
- Deprecated Tracing Flags Are Obsolete and Must Be Replaced With Unified Logging Equivalents
- Removed Root Certificates with 1024-bit Keys
- Removal of Legacy Elliptic Curves
Deprecated Features and Options:
- Terminally Deprecated ThreadGroup stop, destroy, isDestroyed, setDaemon and isDaemon
- Parts of the Signal-Chaining API Are Deprecated
- Deprecated the java.security.cert APIs That Represent DNs as Principal or String Objects
Other Notes:
- Line Terminator Definition Changed in java.io.LineNumberReader
- Enhanced Support of Proxy Class
- Module::getPackages Returns the Set of Package Names in This Module
- Support Supplementary Characters in String Case Insensitive Operations
- Proxy Classes Are Not Open for Reflective Access
- The Default HttpClient Implementation Returns Cancelable Futures
- HttpPrincipal::getName Returned Incorrect Name
- HttpClient.newHttpClient and HttpClient.Builder.build Might Throw UncheckedIOException
- (fs) NullPointerException Not Thrown When First Argument to Path.of or Paths.get Is null
- Incomplete Support for Unix Domain Sockets in Windows 2019 Server
- US/Pacific-New Zone Name Removed as Part of tzdata2020b
- Argument Index of Zero or Unrepresentable by int Throws IllegalFormatException.
- GZIPOutputStream Sets the GZIP OS Header Field to the Correct Default Value
- Refine ZipOutputStream.putNextEntry() to Recalculate ZipEntry's Compressed Size
- java.util.logging.LogRecord Updated to Support Long Thread IDs
- TreeMap.computeIfAbsent Mishandles Existing Entries Whose Values Are null
- Support for CLDR Version 38
- Added Property to Control LDAP Authentication Mechanisms Allowed to Authenticate Over Clear Connections
- LDAP Channel Binding Support for Java GSS/Kerberos
- Make JVMTI Table Concurrent
- IncompatibleClassChangeError Exceptions Are Thrown For Failing 'final' Checks When Defining a Class
- Object Monitors No Longer Keep Strong References to Their Associated Object
- Added 3 SSL Corporation Root CA Certificates
- Added Entrust Root Certification Authority - G4 certificate
- Upgraded the Default PKCS12 Encryption and MAC Algorithms
- Disable TLS 1.0 and 1.1
- C-Style Array Declarations Are Not Allowed in Record Components
- Annotation Interfaces May Not Be Declared As Local Interfaces
- DocLint Support Moved to jdk.javadoc Module
- Eliminating Duplication in Simple Documentation Comments
- Viewing API Documentation on Small Devices
- API Documentation Links to Platform Documentation
- Improvements for JavaDoc Search