
錯誤問題
IDE: IntelliJ
Java 版本: Java 11.0.9
pom.xml
<!-- 略過 --> <dependencies> <dependency> <groupId>org.openjdk</groupId> <artifactId>javafx-controller</artifactId> <version>11.0.2</version> </dependency> </dependencies> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> <!-- 略過 -->
MyFxApp.java
package com.example; import javafx.application.Application; import javafx.stage.Stage; public class MyFxApp extends Application { @Override public void start(Stage stage) throws Exception { stage.setTitle("My First JavaFX App"); stage.show(); } public static void main(String[] args) { Application.launch(args); } }
可以看到這是再正常不過了的 maven 專案,可是我在運行 MyFxApp 的 main() 方法的時候,會出現這樣的錯誤:
錯誤: 遺漏執行此應用程式所 需的 javafx 程式實際執行元件
Error: JavaFX runtime components are missing, and are required to run this application
解決方法
經過了一些網路上的調研,看起來是我的專案內缺少了 module-info.java
定義,只要創建好 module-info.java
就可以了。

module-info.java
module first.fx { // <- module 名稱請跟著自己的專案名稱改變 requires javafx.controller; opens com.example; // <- package 請跟著自己的專案結構改變 }
加入再執行一次,就可以囉!
有時候 javafx.controller
會引入成 javafx.graphics
這兩個有什麼差別呢?
其實我也沒有搞得很清楚,只是 javafx.graphics
會沒辦法引入 Lable、Button … 一些常用元件,可以的話就用 javafx.controller
吧!
No Comment