繁体   English   中英

找不到文件的路径。为什么?

[英]Cannot find the path of a file.Why?

我想在“场景生成器”中创建一个类似于“登录”的框,在此处输入图像描述 ,但是当我在主程序中按运行时,它给了我很多错误,我发现(使用调试器)找不到它。 fxml文件的路径。为什么?

这是我的主

public class Main extends Application{
@Override
public void start(Stage primaryStage) throws Exception {

    primaryStage = primaryStage;
    primaryStage.setTitle("Application");
    Scene scene = new Scene(initRootLayout());
    primaryStage.setScene(scene);
    primaryStage.show();
}
public AnchorPane initRootLayout() {
    try {

        //Load root layout from fxml file.
        FXMLLoader loader = new FXMLLoader();
        loader.setLocation(Main.class.getResource("/D:/Faculta/Lab_ISS/src/main/java/view_FXML/Login.fxml"));
        AnchorPane rootLayout = (AnchorPane) loader.load();
        //  BorderPane rootLayout = (BorderPane) loader.load();
        return rootLayout;
    } catch (IOException e) {
        System.out.println("Muie");
    }
    return null;
}
public static void main(String[] args) {

    launch(args);
}

}

在这张照片中可以看到Login.fxml,此处输入图片描述

而不是/D:/Faculta/Lab_ISS/src/main/java/view_FXML/Login.fxml“,我也尝试过

* D:/Faculta/Lab_ISS/src/main/java/view_FXML/Login.fxml(不带第一个/)

view_FXML / Login.fxml

java / view_FXML / Login.fxml

main / java / view_FXML / Login.fxml

D:\\\\ Faculta \\\\ Lab_ISS \\\\ src \\ main \\\\ java \\\\ view_FXML \\\\ Login.fxml *

Login.fxml文件移动到src/main/resources并使用Main.class.getResource("/Login.fxml");获取资源Main.class.getResource("/Login.fxml");

路径不正确。 请考虑ClassJavaDoc,函数getResource

查找具有给定名称的资源。 搜索与给定类关联的资源的规则由该类的定义类加载器实现。 该方法委托给该对象的类加载器。 如果此对象是由引导类加载器加载的,则该方法将委托给ClassLoader.getSystemResource(java.lang.String)。 在委派之前,使用以下算法从给定资源名称构造绝对资源名称:

  • 如果名称以'/'('\\ u002f')开头,则资源的绝对名称是名称中'/'之后的部分。

  • 否则,绝对名称的格式如下:modified_pa​​ckage_name / name,其中Modifyed_pa​​ckage_name是此对象的程序包名称,用“ /”代替“。”。 ('\\ u002e')。

从硬编码路径检索资源是有问题的。 而是,创建一个名为“ resource”的源文件夹。 (如何执行此操作取决于您是否使用IDE,也可以在src文件夹中创建该文件夹。)这样,资源将在构建和打包过程中遵循您的代码。

要查找您的资源,请查看ClassLoader类的getResource()方法。 这将在类路径中搜索您指定的路径,并提供一个URL,您可以将其转换为URI。 然后,使用新的File(uri)或类似的方法。

您的问题在于以下部分

Main.class.getResource(String path)

该路径不应是设备上的绝对路径,而应是相对于类路径的路径。 因此,您需要将xml复制到运行项目的相同文件夹中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM