跳至主要内容

[Java] 環境建置 & 簡介

本機 Java 環境配置

下載 JDK

撰寫 Java 會需要安裝 JDK (Java Development Kit),一個能讓開發者在本機撰寫、編譯、執行 Java 程式的工具包。
撰寫本文的當下 (2025/09/21),JDK 的最新 LTS 為 25 版,可以直接由下列連結下載:

jdk.java.net

目前 25 沒有提供 .msi 的安裝檔,所以沒辦法無腦一鍵執行安裝並自動設定環境變數。
所以只能載 .zip 壓縮檔,解壓縮至想放的路徑 (例如 C:\Java\jdk-25),然後手動設定環境變數。
解壓縮放置路徑以我個人的話,會選擇跟我其它程式語言或環境的 SDK 放在一起,比如我的 node 就是放在 C:\nvm4w\nodejs,那麼 jdk 我就會放在 C:\Java\jdk-25

那因為是使用 .zip 壓縮檔,所以不會自動幫你設定環境變數,需要手動設定。
打開 cmd,並執行下述指令 (記得以管理員身份執行 cmd):

  1. 設定 JAVA_HOME 系統變數
setx JAVA_HOME "C:\Java\jdk-25" /M
  1. 設定 Path 系統變數
setx PATH "%JAVA_HOME%\bin;%PATH%" /M

接下來關閉 cmd 視窗,重新打開一個新的 cmd 視窗,執行 java -version 指令,若能看到版本資訊,代表安裝成功。

C:\Users\User>java -version
openjdk version "25" 2025-09-16
OpenJDK Runtime Environment (build 25+36-3489)
OpenJDK 64-Bit Server VM (build 25+36-3489, mixed mode, sharing)

VScode Java 開發環境配置

VScode 現在寫 Java 已經比過去方便很多了,只要安裝 Extension Pack for Java 就可以了。
這裡面包含了多個 Java 開發相關的擴充套件,像是語法高亮、程式碼補全、除錯等功能。

如果還沒有安裝 JDK,那其實裝完 VScode extension 後,創建 .java file 時,也會被提示要安裝 JDK。
但總之,裝好 JDK 跟 VScode extension 後,就可以開始寫 Java 程式了。

Java 撰寫架構

首先要知道的是,Java 是非常典型的 OOP 語言,所以他的一切都建立在 class (類別) 的基礎上。
那對 Java 來說,一個 .java file 就是一個 public class,且檔名必須要跟 class 名稱相同 (包含大小寫)。
一個 .java file 的撰寫架構可以區分成幾區:

  1. package 宣告 (可選) → 用來宣告這個 class 屬於哪個 package (套件)
  2. import 宣告 (可選) → 用來引入其他 package 的 class
  3. 主類別宣告 (必須) → 用來宣告這個 class 的名稱。要注意的是,所謂主類別宣告,就是 public class ClassName,而一個 .java file 只能有一個主類別宣告。
提示
  1. 有 package 宣告的 class
    • 同一個 package 裡的其他 class → 直接使用,不需要 import
    • 不同 package 裡的 class → 必須 import
  2. 沒有 package 宣告的 class(default package)
    • 同一個資料夾下的其他 class → 可以直接使用,不需要 import
    • 但 default package 的 class 無法被有 package 的 class import,也就是說,default package 只能在同一個 default package 裡使用

主類別宣告的 class 裡面,又可以分成幾區:

  1. 屬性成員宣告 (可選) → 用來宣告這個 class 的屬性 (變數)
  2. 主方法宣告 → 就是很常見的 public static void main(String[] args),這是 Java 程式的進入點 (entry point),程式執行時會從這裡開始。
  3. 其他方法宣告 (可選) → 用來宣告這個 class 的其他方法 (函式)

下面是一個簡單的 Java 範例,展示了上述的架構:

  • Sum.java: 先建一個簡單的 Java 檔案,作為下一支檔案調用的對象。
public class Sum {
public static void main(String[] args) {
int a = 5;
int b = 10;
int sum = a + b;
System.out.println("The sum is: " + sum);
}
}
  • PrintName.java: 再建一個 Java 檔案,作為主要示範對象,並且 import Sum 這個 class。
public class PrintName {
static String myName = "Jeremy Ho";

public static void main(String[] args) {
printSomething(myName);
printSomething("Hello, World!");
Sum.main(null); // Call the main method of Sum class
}

static void printSomething(String something) {
System.out.println(something);
}
}
注意

static 是告訴 Java 分配一個記憶體空間給這個方法或屬性,讓它可以在沒有創建 class 實例 (instance) 的情況下被呼叫。
換言之,就是加了 static 的方法或屬性,可以直接調用,而不需要先創建這個 class 的物件。

如果不宣告 static,那麼這個方法或屬性就屬於 class 的實例 (instance),必須先創建這個 class 的物件,然後透過這個物件來呼叫這個方法或屬性。
舉例來說:

public class PrintName {
String myName = "Jeremy Ho";

public static void main(String[] args) {
PrintName instance = new PrintName();
instance.printSomething(instance.myName);
instance.printSomething("Hello, World!");
}

void printSomething(String something) {
System.out.println(something);
}
}