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

Java 開發環境搭建全攻略:JDK 選型、應用服務器、運行架構演進

     編輯:Java 相關知識

JDK 選型:不只是 Sun/Oracle

JDK 發佈方特點適用場景
Sun/Oracle JDK參考實現、生態最全、長期支持 (LTS)學習、通用開發、生產首選
IBM JDK (現 Semeru)JVM 優化極致、吞吐/延遲表現優於 HotSpot高併發、大內存、Power/AIX 平台
BEA JRockit (併入 Oracle)專為服務端優化、無解釋器直接 JIT、x86 性能強歷史 WebLogic 專用、現已合併
Azul Zing/Zulu無停頓 GC (C4)、商業支持超低延遲交易、大內存緩存
OpenJDK / Adoptium (Temurin)開源免費、社區驅動、LTS 版本穩定現代雲原生、容器化、CI/CD 標準
GraalVM多語言、AOT 編譯原生映像、啟動極快Serverless、微服務、Polyglot 場景

建議:學習階段用 Oracle JDK / Temurin 17/21 LTS;生產按架構選型,OpenJDK 系已成主流。

核心工具鏈

  • 文檔:官方 Java API 文檔 (離線包必備)
  • 構建工具:Maven (標準化)、Gradle (靈活)、Ant (舊項目)
  • IDE:IntelliJ IDEA (旗艦版/社區版)、Eclipse、VS Code (Java Extension Pack)
  • 版本控制:Git + GitLab/GitHub/Gitea
  • 容器化:Docker + Dockerfile 最佳實踐 (多階段構建、jlink 精簡 JRE)

應用服務器 / Servlet 容器演進全景

輕量級 Servlet 容器 (Web Profile)

  • Apache Tomcat:事實標準、輕量、嵌入式友好、Spring Boot 內嵌默認
  • Jetty:嵌入式優秀、NIO 架構、Eclipse 專案
  • Undertow:WildFly 核心、非阻塞、啟動極快、Spring Boot 可選

全功能 Java EE / Jakarta EE 應用服務器

  • WildFly (JBoss AS):開源旗艦、模塊化、微配置、Jakarta EE 兼容
  • GlassFish / Payara:參考實現、管理主控台強、集群簡單
  • Apache TomEE:Tomcat + EE 功能、輕量認證
  • WebLogic / WebSphere:商業巨頭、企業級支持、價格昂貴、遷移困難

雲原生新勢力

  • Spring Boot:內嵌容器、自動配置、Fat JAR、事實上成為「應用服務器」
  • Quarkus / Micronaut:GraalVM 原生編譯、啟動毫秒級、Kubernetes 原生
  • Helidon:Oracle 微服務框架、Reactive、MP 兼容

Java 應用運行架構分層演進

1. 桌面應用 (Client Tier)

僅需 JRE。Swing/JavaFX、SWT、Electron+Java (JPro)、TornadoFX。現代趨勢:Web 技術替代 (Electron/TAURI) 或原生映像。

2. Web 應用 (3 層經典)

Browser (HTML/JS/CSS) 
    ↓ HTTP/REST/WS
Web 容器 (Tomcat/Jetty/Undertow) : Servlet/JSP/Controller/Filter
    ↓ JDBC/ORMapping
DB (MySQL/Oracle/PostgreSQL)

Spring Boot 內嵌容器簡化部署為單 JAR。

3. 企業級分佈式應用 (N 層 / 微服務)

Gateway (Spring Cloud Gateway / Kong)
    ↓
Service Mesh (Istio / Linkerd) / Client-side LB (Ribbon/LoadBalancer)
    ↓
MicroServices (Spring Boot / Quarkus / Node.js / Go)
    ↓
Service Registry (Nacos / Eureka / Consul)
Config Center (Nacos / Apollo / Consul)
    ↓
Data Layer: ShardingSphere / MyCat / TiDB / Cassandra / Redis / ES
    ↓
Message Bus: Kafka / RocketMQ / Pulsar / RabbitMQ

核心變化:EJB → POJO + Spring → 微服務 + Service Mesh;狀態外部化、可觀測性內建。

4. 嵌入式 / IoT (Java ME / SE Embedded)

早期 J2ME (CLDC/MIDP) → Java SE Embedded (完整 JVM 裁剪) → Java ME 8+ (模塊化) → 現代:
- 裸機/RTOS:Eclipse Kura、ThingsBoard Edge
- 高性能邊緣:GraalVM Native Image、Quarkus
- Android:藝術運行時 (ART),非標準 Java 但語言共通

環境變量與路徑配置精要


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

# Maven
export MAVEN_HOME=/opt/apache-maven-3.9
export PATH=$MAVEN_HOME/bin:$PATH

# 驗證
java -version
mvn -version

Windows 同理設置系統環境變量。避免 在 Path 中硬編碼版本路徑,用 JAVA_HOME 引用。

總結:從「搭建環境」到「定義平台」

初學者關注「能跑起來」;架構師關注:

  • 標準化鏡像 (Dockerfile 模板、基鏡像選型)
  • 構建緩存與加速 (Maven 依賴緩存、Layered JAR)
  • 配置外部化 (Config Center、Secret Manager)
  • 可觀測性預留 (Agent 掛載、Metrics Endpoint)
  • 多環境一致性 (Dev/Staging/Prod 同鏡像、不同配置)

開發環境不是終點,是交付管道的起點。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved