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.launchApplication1 (不明なソース) でのアプリケーション開始メソッドの例外 (com.sun.javafx.application.LauncherImpl.lambda$launchApplication$156 (不明なソース) での java.lang.Thread) .run(不明なソース) 原因: java.lang.NullPointerException: 場所が必要です。javafx.fxml.FXMLLoader.loadImpl (不明なソース) で javafx.fxml.FXMLLoader.loadImpl (不明なソース) で javafx.fxml.FXMLLoader.loadImpl (不明なソース) で javafx.fxml.FXMLLoader.loadImpl (不明なソース) javafx でcom.sun.javafx.application.LauncherImpl.lambda$launchApplication1$163 の core.Main.start(Main.java:27) の javafx.fxml.FXMLLoader.load(不明なソース) の .fxml.FXMLLoader.loadImpl(不明なソース) (不明なソース) 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 に答える