在运行时找不到 JavaFX 控制器 class
JavaFX controller class not found at Runtime
我正在编写一个使用插件的 JavaFX 应用程序。
我制作了一个加载 fxml 文件的插件,以在主应用程序中添加一些节点。
我加载了包含插件的所有 .class 的 .jar,但是当我 运行 插件时我有这个异常:
我不明白为什么因为.jar包含'MainController.class'...但是java 运行加载fxml文件时找不到它
当我 运行 插件作为 JavaFX 独立应用程序时,它工作正常。
我找到了解决方法:
不是在 FXML 文件中声明控制器 class,而是在加载文件之前以编程方式设置它,如下所示:
FXMLLoader loader = new FXMLLoader(getClass().getRessource("myFile.fxml");
loader.setController(new MyController());
loader.load();
希望对您有所帮助。
我正在编写一个使用插件的 JavaFX 应用程序。
我制作了一个加载 fxml 文件的插件,以在主应用程序中添加一些节点。
我加载了包含插件的所有 .class 的 .jar,但是当我 运行 插件时我有这个异常:
我不明白为什么因为.jar包含'MainController.class'...但是java 运行加载fxml文件时找不到它
当我 运行 插件作为 JavaFX 独立应用程序时,它工作正常。
我找到了解决方法:
不是在 FXML 文件中声明控制器 class,而是在加载文件之前以编程方式设置它,如下所示:
FXMLLoader loader = new FXMLLoader(getClass().getRessource("myFile.fxml");
loader.setController(new MyController());
loader.load();
希望对您有所帮助。