前提・実現したいこと
Java言語(外部ライブラリにJavaFX)でguiアプリを作ってみたのですが、eclipse上では動作したのですが、実行可能jarでエクスポートしてカスタムjreで実行したところ以下のようなエラーが発生しました。
何かわかることがあればご教授いただければ幸いです。
発生している問題・エラーメッセージ
Exception in Application start method java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464) at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051) Caused by: java.lang.RuntimeException: Exception in Application start method at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900) at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: java.lang.IllegalStateException: Location is not set. at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2459) at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:2435) at JavaFXSample.javafx.App.loadFXML(App.java:60) at JavaFXSample.javafx.App.start(App.java:31) at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) at java.base/java.security.AccessController.doPrivileged(Native Method) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) ... 1 more Exception running application JavaFXSample.javafx.App
該当のソースコード
java
1package JavaFXSample.javafx; 2 3import java.io.IOException; 4 5import javafx.application.Application; 6import javafx.fxml.FXMLLoader; 7import javafx.scene.Parent; 8import javafx.scene.Scene; 9import javafx.stage.Stage; 10 11/** 12 * JavaFX App 13 * @version 2021/01/05 1.0.0 新規作成 14 * @since 1.0.0 15 * @author ***** 16 */ 17public class App extends Application { 18 19 private static Scene scene; 20 21 /** 22 * TOP画面を表示する 23 * @throws IOException 24 * @version 2021/01/05 1.0.0 新規作成 25 * @since 1.0.0 26 * @author ***** 27 */ 28 @SuppressWarnings("exports") 29 @Override 30 public void start(Stage stage) throws IOException { 31 scene = new Scene(loadFXML("init"), 640, 480); 32 stage.setScene(scene); 33 stage.setTitle("TextEditer"); 34 stage.show(); 35 } 36 37 /** 38 * 引数のfxmlを画面にセットする 39 * @param fxml 表示対象のfxmlファイル名(拡張子なし) 40 * @version 2021/01/05 1.0.0 新規作成 41 * @since 1.0.0 42 * @author ***** 43 * @throws IOException 44 */ 45 static void setRoot(String fxml) throws IOException { 46 scene.setRoot(loadFXML(fxml)); 47 } 48 49 /** 50 * 引数をもとにfxmlファイルの内容を取得する 51 * @param fxml 表示対象のfxmlファイル名(拡張子なし) 52 * @return fxmlファイルの内容 53 * @version 2021/01/05 1.0.0 新規作成 54 * @since 1.0.0 55 * @author ***** 56 * @throws IOException 57 */ 58 private static Parent loadFXML(String fxml) throws IOException { 59 FXMLLoader fxmlLoader = new FXMLLoader(App.class.getResource(fxml + ".fxml")); 60 return fxmlLoader.load(); 61 } 62 63 /** 64 * メインクラス 65 * @throws IOException 66 * @version 2021/01/05 1.0.0 新規作成 67 * @since 1.0.0 68 * @author ***** 69 */ 70 public static void main(String[] args) { 71 launch(); 72 } 73}
補足情報(FW/ツールのバージョンなど)
Javaバージョン:11
JREバージョン:11
openjfxバージョン:13
あなたの回答
tips
プレビュー