我有以下代码在Eclipse中调用Scene。
public class Login extends Application
{
public static final String ICON_IMAGE_LOC = "/icons/Message.png";
@Override
public void start(Stage primaryStage)
{
setStage(primaryStage);
try
{
FXMLLoader loader = new FXMLLoader(this.getClass().getResource("/FXML/Login.fxml"));
Parent root = loader.load();
Scene scene = new Scene(root);
primaryStage.setTitle("Login");
primaryStage.getIcons().add(new javafx.scene.image.Image(ICON_IMAGE_LOC));
primaryStage.setScene(scene);
primaryStage.setResizable(false);
primaryStage.show();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
在Eclipse中,它可以正常打开。但是,当我导出JAR文件并执行时,会发生以下错误:
C:\ Users \ Gabriel Augusto \ Desktop> java -jar Dialog.jar中的异常 线程“主”中的应用程序启动方法异常 java.lang.reflect.InvocationTargetException 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(未知来源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源) 在java.lang.reflect.Method.invoke(未知来源) 在org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:61) 由以下原因引起:java.lang.RuntimeException:应用程序启动中的异常 方法 在com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917) 在com.sun.javafx.application.LauncherImpl.lambda $ launchApplication $ 159(LauncherImpl.java:182) 在java.lang.Thread.run处(未知源)原因:java.lang.IllegalStateException:未设置位置。 在javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2434) 在javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409) 在application.Login.start(Login.java:47) 在com.sun.javafx.application.LauncherImpl.lambda $ launchApplication1 $ 166(LauncherImpl.java:863) 在com.sun.javafx.application.PlatformImpl.lambda $ runAndWait $ 179(PlatformImpl.java:326) 在com.sun.javafx.application.PlatformImpl.lambda $ null $ 177(PlatformImpl.java:295) 在java.security.AccessController.doPrivileged(本机方法) 在com.sun.javafx.application.PlatformImpl.lambda $ runLater $ 178(PlatformImpl.java:294) 在com.sun.glass.ui.InvokeLaterDispatcher $ Future.run(InvokeLaterDispatcher.java:95) 在com.sun.glass.ui.win.WinApplication._runLoop(本机方法) 在com.sun.glass.ui.win.WinApplication.lambda $ null $ 152(WinApplication.java:177) ...还有1个
我项目中的文件安排如下:
为什么会发生此错误? 谢谢。