Javafx ExceptionInInitializerError

时间:2018-10-14 17:53:53

标签: java javafx-8

我以前看过的帖子对我没有用。是错误原因,因为我没有使用过任何fxml加载程序。但是它在任何fxml文件中均不起作用。您能帮我找到错误并链接一些资源以更好地了解与此类似的所有错误吗?我不断收到类似的错误。预先感谢。

我的Main.java

package sample;

import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Group;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;
import javafx.animation.TranslateTransition;

import javafx.scene.*;
import javafx.util.Duration;

import java.awt.event.ActionEvent;

public class Main extends Application {

        private final static javafx.scene.image.Image tree1 = new javafx.scene.image.Image(Main.class.getResource("/images/Tree-1.png").toString());
        private final static javafx.scene.image.Image tree2 = new javafx.scene.image.Image(Main.class.getResource("/images/2.png").toString());
        private final static javafx.scene.image.Image tree3 = new javafx.scene.image.Image(Main.class.getResource("/images/3.png").toString());
        private final static javafx.scene.image.Image tree4 = new javafx.scene.image.Image(Main.class.getResource("/images/4.png").toString());
        private final static javafx.scene.image.Image tree5 = new javafx.scene.image.Image(Main.class.getResource("/images/5.png").toString());
        private final static javafx.scene.image.Image tree6 = new javafx.scene.image.Image(Main.class.getResource("/images/6.png").toString());
        private final static javafx.scene.image.Image tree7 = new javafx.scene.image.Image(Main.class.getResource("/images/7.png").toString());
        private final static javafx.scene.image.Image tree8 = new javafx.scene.image.Image(Main.class.getResource("/images/8.png").toString());




  private Group tree;
    @Override
    public void start(Stage primaryStage) throws Exception{


        final ImageView t1 = new ImageView(tree1);
        final ImageView t2 = new ImageView(tree2);
        final ImageView t3 = new ImageView(tree3);
        final ImageView t4 = new ImageView(tree4);
        final ImageView t5 = new ImageView(tree5);
        final ImageView t6 = new ImageView(tree6);
        final ImageView t7 = new ImageView(tree7);
        final ImageView t8 = new ImageView(tree8);

        tree= new Group(t1);
        tree.setTranslateX(200);
        tree.setTranslateY(220);

        Timeline t = new Timeline();
        t.setCycleCount(Timeline.INDEFINITE);

        t.getKeyFrames().add(new KeyFrame(
                Duration.millis(200),
                event ->{

                    tree.getChildren().setAll(t2);
                    }));

        t.getKeyFrames().add(new KeyFrame(
                Duration.millis(300),
                event ->
        {
            tree.getChildren().setAll(t3);
        }));

        t.getKeyFrames().add(new KeyFrame(
                Duration.millis(400),
               event ->
        {
            tree.getChildren().setAll(t4);
        }));

        t.getKeyFrames().add(new KeyFrame(
                Duration.millis(500),
                 event ->
        {
            tree.getChildren().setAll(t5);
        }));

        t.getKeyFrames().add(new KeyFrame(
                Duration.millis(600),
                event ->
        {
            tree.getChildren().setAll(t6);
        }));

        t.getKeyFrames().add(new KeyFrame(
                Duration.millis(700),
                 event ->
        {
            tree.getChildren().setAll(t7);
        }));

        t.getKeyFrames().add(new KeyFrame(
                Duration.millis(800),
                event ->
        {
            tree.getChildren().setAll(t8);
        }));
        t.play();

        primaryStage.setScene(new Scene(tree,700,800));
        primaryStage.setTitle("Learning Animation");
        primaryStage.show();

    }


    public static void main(String[] args) {

        Application.launch(args);
        launch(args);

    }
}

错误:

"C:\Program Files\Java\jdk1.8.0_131\bin\java.exe" "-

javaagent:C:\Users\Eli\AppData\Roaming\JetBrains\IntelliJ IDEA Community Edition 2018.1.5\lib\idea_rt.jar=7355:C:\Users\Eli\AppData\Roaming\JetBrains\IntelliJ IDEA Community Edition 2018.1.5\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_131\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\rt.jar;F:\pomodoro\out\production\pomodoro" sample.Main
    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:348)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplicationWithArgs$156(LauncherImpl.java:352)
        at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
        at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(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.lambda$null$148(WinApplication.java:191)
        at java.lang.Thread.run(Thread.java:748)
    Caused by: java.lang.NullPointerException
        at sample.Main.<clinit>(Main.java:21)
        ... 11 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:498)
        at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
    Caused by: java.lang.NullPointerException
        at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:383)
        at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)

1 个答案:

答案 0 :(得分:1)

发生这种情况是因为在这一行

 private final static javafx.scene.image.Image tree1 = new javafx.scene.image.Image(Main.class.getResource("/images/Tree-1.png").toString());

您指的是默认FX加载程序找不到的路径

您应该检查图像的存储位置,但是这里是示例结构,很完美

example structure