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

无法启动位于另一个类中的JavaFX GUI,java,javafx,Java,Javafx,我正在尝试启动一个JavaFXGUI,它位于主类的另一个类中。以下是我的JavaFXGUI类: public class JavaFXGUI extends Application{ @Override public void start(Stage primaryStage) throws Exception{ Parent root = FXMLLoader.load(getClass().getResource("TextManipulator.fxml")

我正在尝试启动一个JavaFXGUI,它位于主类的另一个类中。以下是我的JavaFXGUI类:

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)

如果有必要,我很乐意发布更多的代码,我只是不确定什么代码会有用,所以如果我遗漏了一些重要的东西,请发表评论。提前谢谢

我发现,在我的例子中,问题是由我使用OpenJDK而不是Oracle引起的。其他需要检查的是Java版本、语言级别,以及与我的情况类似的,确保您尝试使用的功能在您使用的JRE/JDK中可用。

缺少的私有API类可能表示某些不兼容的版本。你在什么平台上(操作系统,JDK版本),你在任何地方都设置了类路径吗?@James_D,我正在运行OpenJDK,并将SDK切换到常规JDK解决了这个问题。如果你将你的评论表述为一个答案,我将很高兴将其标记为被接受的答案。谢谢你的帮助!