在 Java 程式設計的世界裡,Application(應用程式)與 Applet(小應用程式) 是兩種最基礎、也最常被提及的可執行程式碼形式。雖然它們同樣運行於 Java 虛擬機(JVM)之上,但設計哲學、部署方式與應用場景卻有著本質的區別。理解這兩者的差異,是踏入 Java 開發大門的關鍵一步。
簡單來說,Application 就如同我們早期使用 Visual Basic 或 Visual C++ 所編寫的傳統桌面程式。它擁有完整的獨立運行能力,不依賴瀏覽器,直接由作業系統啟動 JVM 來執行。
public static void main(String[] args) 方法作為程式啟動的入口點。Applet 的設計初衷是為了豐富網頁互動體驗。它無法獨立運行,必須嵌入 HTML 網頁中,並在支援 JVM 的瀏覽器(或透過 Applet Viewer)內執行。
main 方法,而是繼承 java.applet.Applet 或 javax.swing.JApplet,透過 init()、start()、paint() 等生命週期方法由瀏覽器自動呼叫。| 特性 | Application | Applet |
|---|---|---|
| 獨立性 | 獨立程式,直接啟動 | 嵌入網頁,依賴瀏覽器 |
| 啟動方式 | main() 方法 |
生命週期方法 (init/start) |
| 安全限制 | 無預設限制(可簽名提權) | 嚴格沙箱限制 |
| 部署方式 | JAR 檔、安裝包、Web Start | HTML <applet> 標籤 (已棄用) |
| 現狀 | 主流桌面/後端開發標準 | 已被淘汰 (JDK 9 標記棄用,JDK 11 移除) |
雖然 Applet 曾在 Web 1.0 時代大放異彩,但隨著 JavaScript 技術的崛起、HTML5 標準的普及(Canvas、WebGL、WebAssembly)以及瀏覽器廠商相繼停止支援 NPAPI 外掛架構,Applet 已正式走入歷史舞台。現代 Web 開發已完全轉向前後端分離架構,Java 在伺服器端(Spring Boot、Jakarta EE)與桌面端(JavaFX、Swing)繼續發光發熱,而 Applet 僅存在於維護極舊系統的教學案例中。
若您正在學習 Java 或規劃新專案:
掌握 Application 與 Applet 的演進脈絡,不僅能幫助您理解 Java 歷史設計考量,更能讓您在技術選型時避開過時陷阱,專注於現代高效的開發模式。