[已解决]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
