Java 由Modena.class.getResource(“TestApp.css”引起的NPE)
我正在尝试运行可以找到的JavaFX示例Modena。我在Windows8上使用Netbeans 8.0测试版、JDK8最新版本。我想知道为什么我甚至不能编译它 事实上,发生的第一个例外是这样的 我注意到他是JavaFX的新手 程序中的异常行为:Java 由Modena.class.getResource(“TestApp.css”引起的NPE),java,netbeans,javafx,javafx-8,Java,Netbeans,Javafx,Javafx 8,我正在尝试运行可以找到的JavaFX示例Modena。我在Windows8上使用Netbeans 8.0测试版、JDK8最新版本。我想知道为什么我甚至不能编译它 事实上,发生的第一个例外是这样的 我注意到他是JavaFX的新手 程序中的异常行为: private static final String testAppCssUrl = Modena.class.getResource("TestApp.css").toExternalForm(); 我断言我已验证,并且该文件已存在。示例jar文
private static final String testAppCssUrl = Modena.class.getResource("TestApp.css").toExternalForm();
我断言我已验证,并且该文件已存在。示例jar文件可以在我的计算机上运行,并使用上面解释的Java默认配置
Exception in thread "JavaFX Application Thread" Exception in thread "main" java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:340)
at com.sun.javafx.application.LauncherImpl$2.run(LauncherImpl.java:330) at com.sun.javafx.application.LauncherImpl$2.run(LauncherImpl.java:330)
at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:331) at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:331)
at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:297)
at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:294)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39)
at com.sun.glass.ui.win.WinApplication$4$1.run(WinApplication.java:112)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.NullPointerException
at modena.Modena.<clinit>(Modena.java:100)
... 13 more
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.NullPointerException
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:362)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:305)
... 5 more
线程“JavaFX应用程序线程”中的异常线程“main”中的异常java.lang.ExceptionInInitializeError
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(Class.java:340)
com.sun.javafx.application.launchempl$2.run(launchempl.java:330)com.sun.javafx.application.launchempl$2.run(launchempl.java:330)
com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:331)com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:331)
位于com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:297)
位于com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:294)
位于java.security.AccessController.doPrivileged(本机方法)
位于com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:294)
位于com.sun.glass.ui.invokelateDispatcher$Future.run(invokelateDispatcher.java:95)
在com.sun.glass.ui.win.WinApplication.\u runLoop(本机方法)
com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39)
位于com.sun.glass.ui.win.WinApplication$4$1.run(WinApplication.java:112)
运行(Thread.java:744)
原因:java.lang.NullPointerException
在modena.modena.(modena.java:100)
... 还有13个
java.lang.reflect.InvocationTargetException
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:483)
位于sun.launcher.launchelper$FXHelper.main(launchelper.java:767)
原因:java.lang.NullPointerException
位于com.sun.javafx.application.LaunchImpl.launchApplicationWithArgs(LaunchImpl.java:362)
位于com.sun.javafx.application.LaunchImpl.launchApplication(LaunchImpl.java:305)
... 还有5个
问题在于只运行带有Shift+F6
的主文件。我应该使用F6
来运行项目F6
运行项目,但Shift+F6
仅运行包含静态main方法的文件,而不考虑项目配置。getResource(“TestApp.css”)返回空值。所以你得到了一个NPE。您刚刚给它输入了一个文件名,但它可能需要实际的文件路径来加载文件。@BrianC否,将路径更改为完整路径无效。问题在于使用Shift+F6而不是我在回答中所说的F6运行。