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

Java 新手入門指南:JDK 環境建置、CLASSPATH 設定、打包執行

     編輯:Java 相關知識

前言

針對 Java 初學者常見困惑:JDK 不是 IDE、環境變數怎麼設、為什麼沒有 .exe、如何打包發布。本文以現代視角重新整理,補充當前最佳實踐。

JDK ≠ IDE

  • JDK (Java Development Kit):編譯器 (javac)、執行環境 (java)、標準庫、工具 (jar, javadoc, jdb...)——純命令列工具
  • IDE (IntelliJ IDEA, Eclipse, VS Code + Extension):編輯器、偵錯、專案管理、建構工具整合——開發效率工具

建議:新手直接安裝 IntelliJ IDEA Community Edition(免費)或 VS Code + Extension Pack for Java,內建 JDK 管理、建構工具整合,避免手動設定環境變數的痛苦。

環境變數設定(若仍需手動)

Windows 10/11

  1. 搜尋「編輯系統環境變數」→ 環境變數
  2. 系統變數 新增:JAVA_HOME = C:\Program Files\Java\jdk-21(你的 JDK 安裝路徑)
  3. 編輯 Path → 新增 %JAVA_HOME%\bin
  4. 驗證:開新終端機輸入 java -version、javac -version

CLASSPATH 觀念更新

現代 Java 幾乎不需要手動設定 CLASSPATH 環境變數。

  • 預設 .(當前目錄)已在搜尋路徑
  • 使用 javac -cp、java -cp 指定類別路徑
  • 使用建構工具 Maven / Gradle 管理依賴,自動產生 classpath

舊式 CLASSPATH 設定(僅供維護舊專案參考)

# Windows 批次檔暫時設定
set CLASSPATH=.;C:\jdk1.3.1\lib\tools.jar;C:\myproject\classes

# Linux/macShell
export CLASSPATH=.:/usr/local/jdk/lib/tools.jar:/myproject/classes

常見錯誤:ClassNotFoundException / NoClassDefFoundError

錯誤原因解決
ClassNotFoundException執行期找不到類別(Class.forName、ClassLoader.loadClass)檢查 classpath 是否包含該類別所在目錄/jar
NoClassDefFoundError編譯期存在、執行期找不到(靜態初始化失敗、版本衝突)檢查依賴版本、static 區塊例外
大小寫不符Java 區分大小寫類別名 PascalCase、檔名同類別名、指令正確大小寫

Java 不產生 .exe 的原因

Java 編譯產生 位元碼,由 JVM 解釋執行,實現「撰寫一次、到處執行」。.exe 是 Windows 專屬機器碼(PE 格式),無法在 Linux/macOS 執行。

若需原生執行檔:

  • GraalVM Native Image:AOT 編譯產生原生執行檔(啟動快、體積小、部分反射需配置)
  • Launch4j / jpackage (JDK 14+):包裝 JAR + JRE 為安裝包/.exe
  • Spring Boot 打包:mvn spring-boot:build-image 產生 Docker 映像或原生映像

打包發布:從 JAR 到原生映像

基本 JAR 打包

# 編譯
javac -d out src/com/example/Main.java

# 建立 Manifest(指定主類別)
echo "Main-Class: com.example.Main" > manifest.txt

# 打包
jar cfm app.jar manifest.txt -C out .

# 執行
java -jar app.jar

Maven 專案標準打包

<!-- pom.xml -->
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <mainClass>com.example.Main</mainClass>
          </manifest>
        </archive>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>3.5.1</version>
      <executions>
        <execution>
          <phase>package</phase>
          <goals><goal>shade</goal></goals>
          <configuration>
            <transformers>
              <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                <mainClass>com.example.Main</mainClass>
              </transformer>
            </transformers>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>
mvn clean package
# 產生 target/app-1.0.jar (含所有依賴,可直接 java -jar)

jpackage 產生原生安裝包 (JDK 14+)

# 產生 Windows .msi / .exe、macOS .dmg / .pkg、Linux .deb / .rpm
jpackage --input target --main-jar app-1.0.jar --name MyApp --main-class com.example.Main --type msi

新手學習路徑建議

  1. 語言基礎:變數、流程控制、陣列、方法、類別、繼承、介面、例外、集合、泛型、Lambda、Stream
  2. 工具鏈:IntelliJ IDEA 操作、Maven/Gradle 專案結構、Git 版本控制
  3. 核心 API:java.time、IO/NIO.2、並發、JDBC、網路、序列化
  4. 框架生態:Spring Boot、JPA/Hibernate、MyBatis、Redis、測試
  5. 進階主題:JVM 調優、微服務、容器化、雲原生

總結

  • 裝 IntelliJ IDEA 直接開始寫 code,別纏鬥環境變數
  • 用 Maven/Gradle 管理專案,忘掉手動 CLASSPATH
  • 理解 位元碼 + JVM 才是 Java 跨平台核心
  • 發布用 Fat JAR 或 jpackage 或 Docker,別想著產生 .exe
  • 大小寫敏感、例外要處理、資源要關閉(try-with-resources)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved