2

JavaFX 2 を使用する Eclipse プロジェクトがあります。FXML ファイルは Scene Builder を使用して生成されます。私の目標は、実行可能な Jar を作成することです。どの方法で試しても、jarファイルを実行すると、常にJavaAFXランチャーエラー「アプリケーションの実行中に例外が発生しました」/が発生します。スタックトレースは以下です。

JavaFX ant タスクまたは javafxpackager ユーティリティを使用しても同じ結果になります。

Exception in Application start method
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.javafx.main.Main.launchApp(Main.java:642)
    at com.javafx.main.Main.main(Main.java:805)
Caused by: 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(Unknown Source)
Caused by: java.lang.NullPointerException
    at controllers.Main.start(Unknown Source)
    at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:319)
    at com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:206)
    at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:173)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
    at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:73)
    ... 1 more
4

2 に答える 2

4

問題は、コード内の相対パスでした。画像やFXMLファイルを参照するときは、相対パスを使用します。これは、Eclipseから直接実行する場合は正常に機能しましたが、実行可能なjarとしては機能しませんでした。パスをabsoluteに変更すると、問題が修正されました。

編集:このエラーに遭遇し、Scene Builderを使用してFXMLファイルを作成する場合は、テキストエディターを使用してScene Builderから生成されたFXMLファイルを編集し、相対パスを絶対パスに変換する必要があることに注意してください。

于 2013-01-10T18:37:32.617 に答える