在Eclipse外部运行jar时未加载FXML布局

狼6969

我尝试按如下方式加载我的fxml布局文件:

 FXMLLoader loader = new FXMLLoader();
 loader.setLocation(getClass().getResource("view/MainLayout.fxml"));
 AnchorPane personOverview = (AnchorPane) loader.load();

当我在Eclipse中运行应用程序时一切正常,但是当我使用Ant部署应用程序时,出现了一个错误:

在此处输入图片说明

构建项目后,我的文件夹结构为:

在此处输入图片说明

和在部署的罐子里一样

我知道在jar和eclipse中解析路径可能存在问题,但是我无法解决。我使用Java 1.8和JavaFX 8。

更新1根据错误,我认为它使用绝对URL(以file:/ C:/ ...开头)解析路径,但应在jar文件中使用相对URL。为什么要使用绝对路径是主要问题。

更新2

有趣的是,使用相同的代码可以成功加载根布局。

FXMLLoader loader = new FXMLLoader();
loader.setLocation(MainApp.class.getResource("view/RootLayout.fxml"));
rootLayout = (BorderPane) loader.load();

但是内部布局初始化失败。

堆栈跟踪:

java -jar MeterChecker.jar
javafx.fxml.LoadException: unknown path

at javafx.fxml.FXMLLoader.constructLoadException(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at com.wolf6969.checker.MainApp.showMain(Unknown Source)
at com.wolf6969.checker.MainApp.start(Unknown Source)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$153(Unknown Source)
at com.sun.javafx.application.LauncherImpl$$Lambda$51/138227185.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$166(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda$45/584634336.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$null$164(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda$47/94326726.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$165(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda$46/501263526.run(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$141(Unknown Source)
at com.sun.glass.ui.win.WinApplication$$Lambda$37/96639997.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.reflect.misc.Trampoline.invoke(Unknown Source)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.reflect.misc.MethodUtil.invoke(Unknown Source)
... 18 more
Caused by: java.lang.NullPointerException
at com.wolf6969.checker.service.SmsService.getCommandKeys(Unknown Source)
at com.wolf6969.checker.view.MainController.setupControls(Unknown Source)
at com.wolf6969.checker.view.MainController.initialize(Unknown Source)
... 27 more
Exception in Application stop method
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(Unknown Source)
at com.sun.javafx.application.LauncherImpl.launchApplication(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application stop method
at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$147(Unknown Source)
at com.sun.javafx.application.LauncherImpl$$Lambda$48/752848266.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at com.wolf6969.checker.MainApp.stop(Unknown Source)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$154(Unknown Source)
at com.sun.javafx.application.LauncherImpl$$Lambda$147/1418913435.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$166(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda$45/584634336.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$null$164(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda$47/94326726.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$165(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda$46/501263526.run(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$141(Unknown Source)
at com.sun.glass.ui.win.WinApplication$$Lambda$37/96639997.run(Unknown Source)
... 1 more
Exception running application com.wolf6969.checker.MainApp
维纳

我正在使用以下代码

 FXMLLoader loader=new FXMLLoader(Main.class.getResource("views/MainFrame.fxml"));
 AnchorPane rootpane=(AnchorPane) loader.load();

它正在按预期工作

编辑:查看完跟踪后,我认为问题出在您的控制器中,请尝试查看此链接

Caused by: java.lang.NullPointerException
at com.wolf6969.checker.service.SmsService.getCommandKeys(Unknown Source)
at com.wolf6969.checker.view.MainController.setupControls(Unknown Source)
at com.wolf6969.checker.view.MainController.initialize(Unknown Source)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Eclipse外部运行jar时未加载FXML布局

来自分类Dev

外部jar FXML加载异常

来自分类Dev

导出到可运行的jar时未加载图像

来自分类Dev

导出到可运行的jar时未加载图像

来自分类Dev

FXML资源未加载

来自分类Dev

从PHP运行Rscript时库未加载

来自分类Dev

从PHP运行Rscript时库未加载

来自分类Dev

在Android Studio中,运行时未加载Jar库

来自分类Dev

MSDN网站未加载布局

来自分类Dev

尝试在运行时从外部JAR加载类时发生ClassNotFoundException

来自分类Dev

我尝试运行命令时未加载gfortran库

来自分类Dev

我在本地运行命令时未加载ssh-agent

来自分类Dev

从Android Studio运行Gradle脚本时未加载Bashrc

来自分类Dev

从终端运行 python 脚本时未加载模块

来自分类Dev

Jar文件未加载序言

来自分类常见问题

AngularJs未加载外部资源

来自分类Dev

NodeJS未加载外部javascript

来自分类Dev

Clickhouse外部词典未加载

来自分类Dev

运行从 Eclipse 导出的 jar 时出现 InvalidInputException

来自分类Dev

在OnCreateView中显示Admob插页式广告时未加载Android片段布局

来自分类Dev

Magento配置文件未加载布局

来自分类Dev

未加载Grails网址映射布局

来自分类Dev

部署时未加载字体

来自分类Dev

引导时未加载模块

来自分类Dev

登录时未加载bashrc

来自分类Dev

从外部jar加载课程

来自分类Dev

CakePHP编辑未加载外部表数据

来自分类Dev

延迟(未加载)集合上的JPA调用方法在分离时无法按预期在Eclipselink中运行

来自分类Dev

将模型导入到manage.py运行的文件中时,“尚未加载应用”