1

我将一个 JavaFX 项目从 NetBeans 导入到 Eclipse。奇怪的是,我无法执行在 NetBeans 中运行良好的代码。我用 SceneBuilder 设置了一个小 gui。一个小 .fxml 我只想显示 - 此时根本没有功能代码。我的主要课程如下所示:

public class Main extends Application {

public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
        Scene scene = new Scene(root);

        stage.setScene(scene);
        stage.setTitle(Strings.appName);
        stage.getIcons().add(new Image("sql.png")); 
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

但是当我尝试执行代码时,eclipse编译器返回:

lang.RuntimeException:com.sun.javafx.application.LauncherImpl.lambda$launchApplication$156(Unknown Source) at java.lang.Thread 的 com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source) 的应用程序启动方法中的异常.run(Unknown Source) 原因:java.lang.NullPointerException:需要位置。在 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 core.Main.start(Main.java:27) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$163 (未知来源)在 com.sun.javafx.application.PlatformImpl。

这是我的项目结构:

SQL
│   .classpath
│   .project
│
├───.settings
│       org.eclipse.jdt.core.prefs
│
├───bin
│   ├───gui
│   │       FXMLDocument.fxml
│   │       FXMLDocumentController.class
│   │       Main.class
│   │       sql.png
│   │
│   ├───print
│   │       Allgemein.class
│   │       Mahnung.class
│   │       PDF.class
│   │       Rechnung.class
│   │
│   └───various
│           Strings.class
│
└───src
    └───gui
            FXMLDocument.fxml
            FXMLDocumentController.java
            Main.java

我在这里做错了什么?或者 Eclipse 在这里期待什么,NetBeans 不是?!?

4

1 回答 1

0

就像@James_D 所建议的那样,我能够使用

System.out.println(getClass().getResource("Main.class"));

System.out.println(getClass().getResource("FXMLDocument.fxml"));

结果证明,在将项目从运行 NetBeans 的 ubuntu 笔记本电脑复制到运行 10 和 Eclipse 的主 Windows 机器上时,我的类路径一定已经损坏了。我修复了它,现在一切正常。

于 2015-10-20T06:14:22.800 回答