Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse JavaFX展示台_Eclipse_Netbeans_Javafx_Fxml_Efxclipse - Fatal编程技术网

Eclipse JavaFX展示台

Eclipse JavaFX展示台,eclipse,netbeans,javafx,fxml,efxclipse,Eclipse,Netbeans,Javafx,Fxml,Efxclipse,我将一个JavaFX项目从NetBeans导入Eclipse。奇怪的是,我无法执行在NetBeans中运行良好的代码。我用SceneBuilder设置了一个小gui。我只想展示一点.fxml——目前根本没有函数代码。我的主要课程是这样的: public class Main extends Application { public void start(Stage stage) throws Exception { Parent root = FXMLLoader.load(g

我将一个JavaFX项目从NetBeans导入Eclipse。奇怪的是,我无法执行在NetBeans中运行良好的代码。我用SceneBuilder设置了一个小gui。我只想展示一点.fxml——目前根本没有函数代码。我的主要课程是这样的:

public class Main extends Application {

public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
        Scene scene = new Scene(root);

        stage.setScene(scene);
        stage.setTitle(Strings.appName);
        stage.getIcons().add(new Image("sql.png")); 
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
但当我尝试执行代码时,eclipse编译器返回:

应用程序启动方法中的异常 java.lang.reflect.InvocationTargetException位于 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)位于 位于的sun.reflect.NativeMethodAccessorImpl.invoke(未知源) sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)位于 java.lang.reflect.Method.invoke(未知源代码)位于 com.sun.javafx.application.LaunchImpl.launchApplicationWithArgs(未知 来源)在 com.sun.javafx.application.LaunchImpl.launchApplication(未知 源代码)位于sun.reflect.NativeMethodAccessorImpl.invoke0(本机 方法)在sun.reflect.NativeMethodAccessorImpl.invoke(未知 源)位于sun.reflect.DelegatingMethodAccessorImpl.invoke(未知 位于java.lang.reflect.Method.invoke(未知源代码)的 sun.launcher.launchelper$FXHelper.main(未知源)由以下原因引起: java.lang.RuntimeException: com.sun.javafx.application.LaunchImpl.launchApplication1(未知 来源)在 com.sun.javafx.application.launchempl.lambda$launchApplication$156(未知 源代码)位于java.lang.Thread.run(未知源代码),原因如下: java.lang.NullPointerException:需要位置。在 javafx.fxml.fxmloader.loadImpl(未知源)位于 javafx.fxml.fxmloader.loadImpl(未知源)位于 javafx.fxml.fxmloader.loadImpl(未知源)位于 javafx.fxml.fxmloader.loadImpl(未知源)位于 javafx.fxml.fxmloader.loadImpl(未知源)位于 javafx.fxml.fxmloader.load(未知源)位于 core.Main.start(Main.java:27)位于 com.sun.javafx.application.launchempl.lambda$launchApplication1$163(未知 来源)在 com.sun.javafx.application.platformpl.lambda$runAndWait$176(未知) 来源)在 com.sun.javafx.application.platformpl.lambda$null$174(未知) 源代码)位于java.security.AccessController.doPrivileged(本机方法) 在 com.sun.javafx.application.platformpl.lambda$runLater$175(未知 来源)com.sun.glass.ui.InvokeLaterDispatcher$Future.run(未知 来源)com.sun.glass.ui.win.WinApplication.\u runLoop(本机) 方法)在 com.sun.glass.ui.win.WinApplication.lambda$null$149(未知来源) ... 运行应用程序core.Main时出现1个以上异常

这是我的项目结构:


我做错了什么?或者eclipse在这里期待着什么,而NetBeans没有

就像@James\u D建议的那样,我可以使用

System.out.println(getClass().getResource("Main.class"));


结果证明,我的类路径一定是在将项目从运行NetBeans的ubuntu笔记本复制到运行10和Eclipse的主Windows计算机时被破坏的。我修复了它,现在一切正常。

就像@James\u D建议的那样,我可以使用

System.out.println(getClass().getResource("Main.class"));


结果证明,我的类路径一定是在将项目从运行NetBeans的ubuntu笔记本复制到运行10和Eclipse的主Windows计算机时被破坏的。我修复了它,现在一切正常。

错误消息说找不到FXML文件。假设您已将FXML文件复制到源文件夹中;确保Eclipse将其与类文件一起部署。这可能有助于显示您的项目布局。看起来是这样,但我无法解释原因。我的gui软件包同时包含Main.java和FXMLDocument.fxml是否将fxml文件复制到与Main.class文件相同的目录中?这就是在运行时加载它的地方。是的,它们都在同一个目录中。正如我已经说过的,在NetBeans中,这就像一种魅力。但是我想将项目导出到Eclipse,因为我更喜欢这个IDE。不知道为什么eclipse编译器找不到.fxml::当您从eclipse运行应用程序时,它会将.java文件编译到某个位置(可配置,但可能是一个名为
bin
的文件夹,它与
src
位于同一父文件夹中),然后从那里运行。NetBeans可能有不同的设置。因此,如果您从NetBeans复制类文件,您可能有两个类文件。您需要确保FXML文件与Eclipse编译时生成的类文件位于同一文件夹中(因此确保Eclipse正在部署FXML文件)。您的问题需要包含项目结构,包括输出文件夹(即bin)。错误消息表示找不到FXML文件。假设您已将FXML文件复制到源文件夹中;确保Eclipse将其与类文件一起部署。这可能有助于显示您的项目布局。看起来是这样,但我无法解释原因。我的gui软件包同时包含Main.java和FXMLDocument.fxml是否将fxml文件复制到与Main.class文件相同的目录中?这就是在运行时加载它的地方。是的,它们都在同一个目录中。正如我已经说过的,在NetBeans中,这就像一种魅力。但是我想将项目导出到Eclipse,因为我更喜欢这个IDE。不知道为什么eclipse编译器找不到.fxml::当您从eclipse运行应用程序时,它会将.java文件编译到某个位置(可配置,但可能是一个名为
bin
的文件夹,它与
src
位于同一父文件夹中),然后从那里运行。NetBeans可能有不同的设置。因此,如果您从NetBeans复制类文件,您可能有两个类文件。您需要确保FXML文件与Eclipse编译时生成的类文件位于同一文件夹中(因此确保Eclipse正在部署FXML文件)。您的问题包括您的项目结构,包括输出文件夹(即bi
System.out.println(getClass().getResource("FXMLDocument.fxml"));