[已解决]JDK11版本中使用Java FX的一个问题?


方法入口类:

import javafx.application.Application;

public class Main extends Application {

public static void main(String[] args) {

Application.launch(args);

}

@Override

public void start(Stage primaryStage) {

// 主业务

}

}

模块声明类:

module java9.demo {

requires javafx.graphics;

requires javafx.controls;

}


问题整个服务流程,虽然是Main主类发起,但是Application#launch会通过反射再调用主类的satrt方法,在模块化之前当然没问题,但是模块化之后由于javafx的模块没有声明对java9.demo的依赖且没有用到SPI机制,那为什么还是可以运行?

↑原问题

源项目代码实际是不能启动的,原因确实是反射引起的,由于javafx模块对于应用模块无权限,所以解决办法是当前模块设置为开放模块即可。
open module java9.demo {

requires javafx.graphics;

requires javafx.controls;

}

以上是 [已解决]JDK11版本中使用Java FX的一个问题? 的全部内容, 来源链接: utcz.com/p/944221.html

回到顶部