VSCode 建立 Java 專案

VSCode 優勢

VSCode 的遠端連線、第三方支援,遠比 NetBeans 更好,所以建議使用 VSCode 進行 Java 程式開發。

OpenJDK

首先到 https://learn.microsoft.com/en-us/java/openjdk/download 下載 OpenJDK 21 版本並安裝。

安裝 VSCode

請先到 https://code.visualstudio.com/Download 下載 System installer 版本並安裝。

Extension 擴充包

VSCode 預設並不支援 Java,所以需由 Extension 下載 Extension pack for Java 及 Gradle for Java 二個擴充包。安裝 Extension pack for Java 時,會自動下載 Gradle for Java。

VSCode 教學

進行教學時,每天有不同的主題,可新增當日日期 (20260429) 作為目錄,然後新增子目錄「p01_xxx」,此子目錄是一個新的主題。在子目錄再新增 App.java 作為程式的進入點。


App.java 的第一行加入 package,如下

package p01_類別;

public class App {
    public static void main(String[] args) {
        Pokemon p1=new Pokemon();
        System.out.println(p1.level);
    }
}
class Pokemon{
    int level=10;

}

以上作法就算每個子目錄有相同的類別名稱也不會相衝。

package 名稱不可使用數字開頭,故加入「p」。package 名可以使用中文,方便中文語系的人閱讀。

編譯自訂 SDK

假設我們的自訂 sdk 目錄如下

project/
├─ src/
│  └─ net/
│     └─ ddns/
│        └─ mahaljsp/
│           ├─ np.java
│           ├─ os.java
│           └─ mysql/
│                ├─ mysql.java
│                ├─ PyConnection.java

在 Power Shell (VSCode Terminal) 執行如下指令,將 sdk 打包成 mahaljsp .jar,然後置於 libs 之下。

Get-ChildItem -Recurse -Filter *.java src | % { $_.FullName } > sources.txt
$sources = Get-Content sources.txt
javac -d out $sources
jar cvf ./libs/mahaljsp.jar -C out .

javac -d out $sources 就是把所有的 java 都編譯成 .class,然後置於專案下的 out 目錄。

jar 的「-C out」是指要切進 out 目錄中,然後「.」是指 out 裏所有的檔案。

在 Linux 下可使用如下指令

javac -d out $(find src -name "*.java")
jar cvf ./libs/mahaljsp.jar -C out .

jar 在作什麼

jar 就是在 out 裏新增 META-INF 目錄,然後在裏面新增 MANEFEST.MF 檔案。

MANIFEST.MF 檔案內容如下

Manifest-Version: 1.0
Created-By: 21.0.10 (Microsoft)

請注意,MANIFEST.MF 最後一行一定要空白行,不然會讀不到。

然後將 out 內的所有檔案及目錄選取,壓縮成 mahaljsp.zip 檔,然後將副檔名 .zip 改成 .jar 檔。

注意上述的 sdk,就算沒有 META-INF 一樣可以使用。

Ant 專案

VSCode 預設就是使用 Ant 模式開啟專案,執行時會在指令上打上所有參數,適用於單一檔案或不複雜的專案。

實際的專案中,最好在專案下新增 src 及 lib,然後把 .java 程式碼寫在 src 之內。

project/ 
├─ src/
└─ libs/

settings.json 設定

VSCode 預設只會在 lib 目錄找相關的 library。若希望也能尋找 libs 目錄,可在 VSCode 按下 Ctrl+Shift+p,選擇 Preferences: Open user Settings(JSON) ,新增如下設定。

🔒 底下內容僅限會員閱讀。

立即登入

打包成 jar

在專案下根目錄裏增 MANIFEST.MF 設定如下。請注意最後一定要有一行空白行。

Manifest-Version: 1.0
Main-Class: C01
Class-Path: libs/mahaljsp.jar

編譯成 C01.class 並置於 out 之內

javac -d out -cp "./libs/*" src/C01.java

將 C01.class 打包成 C01.jar

jar cfm C01.jar MANIFEST.MF -C out .

將 C01.jar 及 libs copy 到其它電腦,即可使用如下指令執行。

java -jar C01.jar

java -cp 及 -jar 不可同時並存,因為 -jar 會使用 MANIFEST.MF 的 Class-Path 取代 -cp。

包含 mahaljsp.jar 的作法

把 mahaljsp.jar 包進 C01.jar 是不能使用的,所以有另一種作法。

假設 C01.class 在 out 目錄下,則要把 mahaljsp.jar 解開置於 out 之下,詳細目錄結構如下。

├─ out/
│   ├── net/
│   │  └─ ddns/
│   │     └─ mahaljsp/
│   │       ├─ np.class
│   │       ├─ os.class
│   │       └─ mysql/
│   │          ├─ mysql.class
│   │          ├─ PyConnection.class
│   ├─ C01.class

然後使用如下指令打包

jar cfm out.jar MANIFEST.MF -C out .

最後使用如下指令執行

java -jar out.jar

Gradle 專案

專案由多個 .java 檔案組成,並且引用多個 .jar 套件時,通常會形成較為複雜的編譯與相依性管理需求,此時需使用 Gradle 進行建置與依賴管理,提升開發效率與專案可維護性。

安裝 Gradle

https://gradle.org/releases/ 下載最新 Gradle 版本 binary-only。解開後改名為 gradle,置於 c:\ 之下,然後將 C:\gradle\bin 設定於系統 path 變數中。

VSCode 擴充包

VSCode Extension 需安裝 Gradle for Java。

開啟專案

Ctrl + Shift + p,選取 Java: Create Java Project,再選取 Gradle,然後指定目錄,比如 e:\java\gradle\mix,再選取 Groovy,然後專案名直接按 enter。

右下角若有出現 A build file was modified. Do you want to synchronize the java classpath/configureation? 按下 Always。

AppTest 錯誤

app\src\test\java\mix\AppTest.java 是以後大型專案要作單元測試用的,一般人都用不到,所以需先刪除掉。

自訂 sdk

請在 app 下新增 libs,將 mahaljsp.jar copy 到 libs 下,然後在 build.gradle 的 dependencies 新增如下設定。

🔒 底下內容僅限會員閱讀。

立即登入

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *