世界震撼.dev

いつか世界を驚かせるためのメモ

JavaFXでException in Application start methodって言われて困った話

結論から言うとコンパイルのし忘れという初歩のミスをやらかしてた

JavaFXで作ったものをインポートして利用しようとしたところ

こんな感じに怒られた

Exception in Application start method

java.lang.reflect.InvocationTargetException

~~中略~~

Caused by: javafx.fxml.LoadException:

/C:/Users/h/o/g/e/fxml/StartGUI.fxml:13

fxmlがない?

パスを間違えているのかとフルパスを指定しても変わらない

ちなみにエラーの箇所はこんな感じ(一部伏字)

実にありふれた文

BorderPane root = FXMLLoader.load( getClass( ).getResource( "/**/fxml/StartGUI.fxml" ) );

エラーの下の方をよく読むと、コントローラーが見つからない?と言っている

Caused by: java.lang.ClassNotFoundException: hoge.controller.StartGUIController

パスも間違ってないのになぜだと思いきや

Controllerのコンパイルを忘れている

コピってきたからclassファイルもあるし、修正後のコンパイルに気づかなかった

通りでStackOverflowにも回答がないわけです

初歩的なミスが一番怖い

エラー全文

Exception in Application start method
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(Lau
ncherImpl.java:363)
        at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImp
l.java:303)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Exception in Application start method
        at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherIm
pl.java:875)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$147(
LauncherImpl.java:157)
        at com.sun.javafx.application.LauncherImpl$$Lambda$48/501263526.run(Unkn
own Source)
        at java.lang.Thread.run(Thread.java:745)
Caused by: javafx.fxml.LoadException:
/C:/Users/**/**/**/**/fxml/StartGUI.fxml:13

        at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2595)
        at javafx.fxml.FXMLLoader.access$700(FXMLLoader.java:104)
        at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:
918)
        at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FX
MLLoader.java:967)
        at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:21
6)
        at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.ja
va:740)
        at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2701)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2521)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2435)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3208)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3169)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3142)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3118)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3098)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3091)
        at **.fx.StartSet.start(StartSet.java:31)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$153
(LauncherImpl.java:821)
        at com.sun.javafx.application.LauncherImpl$$Lambda$51/934820170.run(Unkn
own Source)
        at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$166(Platfor
mImpl.java:323)
        at com.sun.javafx.application.PlatformImpl$$Lambda$44/661672156.run(Unkn
own Source)
        at com.sun.javafx.application.PlatformImpl.lambda$null$164(PlatformImpl.
java:292)
        at com.sun.javafx.application.PlatformImpl$$Lambda$47/355644776.run(Unkn
own Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$165(PlatformI
mpl.java:291)
        at com.sun.javafx.application.PlatformImpl$$Lambda$45/128893786.run(Unkn
own Source)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatch
er.java:95)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$null$141(WinApplication.ja
va:102)
        at com.sun.glass.ui.win.WinApplication$$Lambda$37/1349277854.run(Unknown
 Source)
        ... 1 more
Caused by: java.lang.ClassNotFoundException: **.controller.StartGUIController
        at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:
916)
        ... 27 more
Exception running application **.fx.StartSet