JavaFX 可执行 JAR 在加载 FXML 文件时遇到问题,为什么没有加载 FXML?
JavaFX executable JAR runs into problems with loading FXML file, why isn't the FXML being loaded?
下面是异常输出。我认为该程序无法检索 FXML 文件 "home.FXML";它在这一行失败了:
Parent root = FXMLLoader.load(getClass().getResource("/fxml/home.fxml"));
这是加载 FXML 的 class 的其余部分。
public class Boorus extends Application{
public static void main(String[] args){
launch(args);
}
public void start(Stage primaryStage) throws Exception{
SQLboss.makeTables();
Parent root = FXMLLoader.load(getClass().getResource("/fxml/home.fxml"));
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.setTitle("Boorus");
primaryStage.show();
}
}
我的项目结构如图所示:
在此处粘贴异常:http://pastebin.com/rWkRuury
您的 JAR
文件中可能没有包含 .fxml
文件。
在构建 JAR
文件的步骤中,检查是否包含且未排除 .fxml
个文件。
如果您想检查 JAR
文件的内容但不确定如何:将扩展名重命名为 .zip
(它实际上是一个 zip 文件)并打开它。
正在加载 fxml 文件。问题是坏了。
里面有些东西在罐子里不起作用。除非您向我们展示 fxml,否则没人能帮助您。顺便说一句,当找不到文件时,这将是一个例外:
java.lang.NullPointerException: Location is required.
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at application.Main.start(Main.java:14)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication19(Unknown Source)
at com.sun.javafx.application.LauncherImpl$$Lambda/1018544248.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait2(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda/1586270964.run(Unknown Source)
然而你的是:
Caused by: javafx.fxml.LoadException:
fxml/home.fxml
at javafx.fxml.FXMLLoader.constructLoadException(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
可以是各种各样的东西,比如e。 G。 this one.
下面是异常输出。我认为该程序无法检索 FXML 文件 "home.FXML";它在这一行失败了:
Parent root = FXMLLoader.load(getClass().getResource("/fxml/home.fxml"));
这是加载 FXML 的 class 的其余部分。
public class Boorus extends Application{
public static void main(String[] args){
launch(args);
}
public void start(Stage primaryStage) throws Exception{
SQLboss.makeTables();
Parent root = FXMLLoader.load(getClass().getResource("/fxml/home.fxml"));
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.setTitle("Boorus");
primaryStage.show();
}
}
我的项目结构如图所示:
在此处粘贴异常:http://pastebin.com/rWkRuury
您的 JAR
文件中可能没有包含 .fxml
文件。
在构建 JAR
文件的步骤中,检查是否包含且未排除 .fxml
个文件。
如果您想检查 JAR
文件的内容但不确定如何:将扩展名重命名为 .zip
(它实际上是一个 zip 文件)并打开它。
正在加载 fxml 文件。问题是坏了。
里面有些东西在罐子里不起作用。除非您向我们展示 fxml,否则没人能帮助您。顺便说一句,当找不到文件时,这将是一个例外:
java.lang.NullPointerException: Location is required.
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at application.Main.start(Main.java:14)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication19(Unknown Source)
at com.sun.javafx.application.LauncherImpl$$Lambda/1018544248.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait2(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda/1586270964.run(Unknown Source)
然而你的是:
Caused by: javafx.fxml.LoadException:
fxml/home.fxml
at javafx.fxml.FXMLLoader.constructLoadException(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
可以是各种各样的东西,比如e。 G。 this one.