无法启动位于另一个类中的JavaFX GUI

时间:2015-02-22 15:09:50

标签: java javafx

我尝试启动位于Main类中另一个类的JavaFX GUI。这是我的JavaFX GUI类:

public class JavaFXGUI extends Application{
    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("TextManipulator.fxml"));
        primaryStage.setTitle(i18n.getString("program_full_name"));
        primaryStage.setScene(new Scene(root));
        primaryStage.show();
    }
}

这个类几乎完全是从Oracle自己的教程中复制过来的,并且当方法在主类中时效果很好,但现在我已经移动了它,当我调用它时 JavaFXGUI.launch(JavaFXGUI.class, args) 从main方法来看,一切都编译得很好,但是当我运行时,我会不断重复以下错误:

Exception in thread "JavaFX Application Thread" java.lang.NoClassDefFoundError: Could not initialize class com.sun.javafx.logging.PulseLogger
at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:456)
at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:431)
at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$363(QuantumToolkit.java:298)
at com.sun.javafx.tk.quantum.QuantumToolkit$$Lambda$70/950205023.run(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at com.sun.glass.ui.gtk.GtkApplication.lambda$null$45(GtkApplication.java:126)
at com.sun.glass.ui.gtk.GtkApplication$$Lambda$66/331637932.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)

如果有必要,我会很高兴发布更多代码,我只是不确定哪些代码会有所帮助,所以如果我错过了重要的内容,请发表评论。提前谢谢!

1 个答案:

答案 0 :(得分:0)

我发现在我的情况下,问题是由于我使用的是OpenJDK而不是Oracle。在我的案例中,要检查的其他一些事情是Java版本,语言级别等,确保您正在使用的JRE / JDK中提供了您尝试使用的功能。