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