我有一个Javafx应用程序,并将所有fxml文件存储在src / foo / bar / fxui文件夹中。我使用下面的代码来引用fxml文件:
FXMLLoader loader = new FXMLLoader(getClass().getResource("/foo/bar/fxui/file.fxml"));
Parent root = (Parent) loader.load();
调用类在src / foo / bar中。
当我在Eclipse中运行该代码时,效果很好。为了部署它,我使用efxclipse将其导出为JAR。当我直接运行JAR文件时,它也很好用。但是,当我尝试在浏览器(Chrome / IE)中启动此应用程序时,代码会中断。它告诉我“未设置位置”。我已解决以下行返回null的问题:
getClass().getResource("/foo/bar/fxui/file.fxml")
因此,在我看来,这是无法通过指定的路径获取文件的问题。我尝试将fxml文件放入main / resources / foo / bar / fxui文件夹中。它也不起作用。
我确定所需文件在JAR归档文件中。问题是,当我通过双击打开JAR文件时,它会运行,但无法在浏览器中运行。
我在这个问题上花了一整天的时间。任何帮助深表感谢!
我自己解决了这个问题。根本原因是我没有正确签名我的罐子。
Java getResource()使用反射,如果没有有效的证书,它将不能正确执行。在这种情况下,可以使用自签名的jar。
谢谢您上面的所有输入。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句