使用eclipse+JavaFx SDK建立JavaFx專案(非模組化)

環境準備

專案 版本 地址
Java Java SE 11 官網下載地址
eclipse eclipse-jee-2020-12-R-win32-x86_64 官網下載地址
JavaFx JavaFX Windows SDK 11.0.2 官網下載地址

開啟eclipse,在選單 File | New | Project... 新建專案,這裡選擇Java資料夾下的Java Project

在Next裡面對專案進行常規配置,注意以下兩個地方,JDK以版本11.0.9為例,module-info.java這個地方不要勾選,如果不知道,就看一下專案的包裡面有沒有這個檔案,有就刪除。

開啟Eclipse的 Window | Preferences,左側展開Java | Build Path | User Libraries,在右側透過New和Add External JARs新增一個庫且把JavaFx的jar新增到庫中,效果看下圖,此處建立了一個名為【JavaFx-11.0.2】的Library。(注意不要把「src.zip」這個檔案加到Library裡面)

在Java專案上右鍵 Build Path | Configure Build Path,在跳出視窗的右側選擇Libraries索引標籤,點選Add Library新增剛才建立好的Library,儲存然後關閉。

在專案中建立包和類,使得專案結構看起來像下面這樣,程式碼附在了後面。

原始碼:

App.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package test.jfx;
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class App extends Application {
    public static void main(String[] args) {
        Application.launch(App.class, args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        Button btn = new Button("按鈕A using JDK-" + System.getProperty("java.version"));
        VBox vBox = new VBox(btn);
        vBox.setAlignment(Pos.CENTER);
        primaryStage.setScene(new Scene(vBox, 640, 360));
        primaryStage.setTitle("Maven Test");
        primaryStage.show();
    }
}

AppLauncher.java

1
2
3
4
5
6
7
8
9
package test.jfx;

import javafx.application.Application;

public class AppLauncher {
    public static void main(String[] args) {
        Application.launch(App.class, args);
    }
}

如果之前的都配置好了的話,到這裡就可以直接執行AppLauncher里的main方法,專案就可以跑起來了,如圖。

但是如果現在直接執行App里的main,在主控臺會報錯

錯誤: 缺少 JavaFX 執行期套件, 需要使用該套件來執行此應用程式

這是因為沒有配置VM引數,現在配置一下,開啟 Run | Run Configurations,左側選擇剛才執行的名稱為「App」的配置,新增以下VM引數(--module-path根據自己的Javafx SDK里lib絕對路徑設定)。

1
--module-path C:swjavafx-sdk-11.0.2lib --add-modules javafx.controls,javafx.fxml