Java 由Modena.class.getResource(“TestApp.css”引起的NPE)

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文

我正在尝试运行可以找到的JavaFX示例Modena。我在Windows8上使用Netbeans 8.0测试版、JDK8最新版本。我想知道为什么我甚至不能编译它

事实上,发生的第一个例外是这样的

我注意到他是JavaFX的新手

程序中的异常行为:

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运行。