相关疑难解决方法(0)

从Spring Boot中的resources文件夹中读取文件

我正在使用Spring Boot和json-schema-validator.我正在尝试读取jsonschema.json从该resources文件夹调用的文件.我尝试了几种不同的方法,但我无法让它发挥作用.这是我的代码.

ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("jsonschema.json").getFile());
JsonNode mySchema = JsonLoader.fromFile(file);
Run Code Online (Sandbox Code Playgroud)

这是文件的位置.

在此输入图像描述

在这里,我可以在文件classes夹中看到该文件.

在此输入图像描述

但是当我运行代码时,我得到以下错误.

jsonSchemaValidator error: java.io.FileNotFoundException: /home/user/Dev/Java/Java%20Programs/SystemRoutines/target/classes/jsonschema.json (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

我在代码中做错了什么?

java spring spring-boot json-schema-validator

45
推荐指数
11
解决办法
11万
查看次数

如何在资源文件夹中引用javafx fxml文件?

我正在创建一个javafx GUI应用程序,我的项目是一个maven配置的项目.我希望能够在我的控制器中引用我的fxml文件:

FXMLLoader.load(getClass().getResource("main.fxml"); 
Run Code Online (Sandbox Code Playgroud)

我的main.fxml文件位于src/main/resources文件夹中,而我的控制器位于src/main/java文件夹中.我该怎么做呢?我的src/main/resources文件夹位于构建路径中,我可以从src/main/java文件夹中的类调用src/main/resources文件夹中的.properties文件.

编辑

我试图将fxml文件放在主资源文件夹的相应目录中:

在此输入图像描述

但我仍然有一个错误.

java resources javafx buildpath fxml

28
推荐指数
2
解决办法
6万
查看次数

从外部模块访问资源文件

到目前为止,直到非模块化的java,你只需要放入一个文件,src/main/java/resources确保它在classpath中,然后加载它

file = getClass().getClassLoader().getResourceAsStream("myfilename"); 
Run Code Online (Sandbox Code Playgroud)

来自类路径中的任何位置.

现在有了模块,情节变浓了.

我的项目设置如下:

module playground.api {
    requires java.base;
    requires java.logging;
    requires framework.core;
}
Run Code Online (Sandbox Code Playgroud)

配置文件放在里面src/main/resources/config.yml.

项目运行

java -p target/classes:target/dependency -m framework.core/com.framework.Main
Run Code Online (Sandbox Code Playgroud)

由于主类不在我自己的项目中,而是在外部框架模块中,因此无法看到config.yml.现在的问题是,有没有办法以某种方式将我的配置文件放入模块或打开它?我是否必须更改框架上游加载文件的方式?

我尝试在module-info中使用"exports"或"opens",但它想要一个包名,而不是文件夹名.

如何以最佳实用的方式实现这一点,以便它可以像Java 8一样工作,并尽可能少地进行更改?

java java-platform-module-system java-9

16
推荐指数
2
解决办法
5946
查看次数