当我使用应用程序类创建一个新的Netbeans Projekt(JavaFX FXML应用程序)时,我像往常一样接收一个模板(一个.fxml,一个控制器类和主应用程序)。当我尝试运行时,我得到一个例外:
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:403)
at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:47)
at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:115)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException: Location is required.
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2825)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2809)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2795)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2782)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2771)
at volltextsuche.Volltextsuche.start(Volltextsuche.java:25)
[...]
这是我的start()方法:
@Override
public void start(Stage stage) throws Exception {
URL url = getClass().getResource("FXMLDocument.fxml");
System.out.println(url == null);
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
以某种方式,URL为空。第25行是Parent root = [...]
部分。 .fxml文档与Strings tell具有完全相同的名称,与主应用程序类位于同一个包中。我没有改变任何东西,只是对URL的空检查。我用谷歌搜索了很长时间,但我找不到任何关于这个错误的信息。
答案 0 :(得分:0)
好的,我发现了错误,请参阅here。错误是不同的,但解决方案是相同的。我在项目设置中发现了对dist.jar的破坏引用。正如链接中回答的问题所述,我必须CLEAN and build
第一个版本的项目。破坏的参考由此得到修复。我删除了所有已编译的文件,现在编译器完成了所需的一切,并编译了整个项目。
答案 1 :(得分:0)
这是一种有效的临时解决方案。
首先将资源复制到与src文件夹相同的目录。
因此,如果你的src文件夹路径是C:app / src,那么将所有资源复制到C:app
再次运行该应用程序。