我尝试启动位于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)
如果有必要,我会很高兴发布更多代码,我只是不确定哪些代码会有所帮助,所以如果我错过了重要的内容,请发表评论。提前谢谢!
答案 0 :(得分:0)
我发现在我的情况下,问题是由于我使用的是OpenJDK而不是Oracle。在我的案例中,要检查的其他一些事情是Java版本,语言级别等,确保您正在使用的JRE / JDK中提供了您尝试使用的功能。