当前位置: 首页 > 知识库问答 >
问题:

在spring应用程序的resources文件夹中指定文件。属性文件

端木宏盛
2023-03-14

我有一个Spring Boot应用程序,代码需要访问resources文件夹下的一个文件。这是我的申请表。属性文件:

cert.file=classpath:/resources/cert.p12

然而,它总是抱怨:

java.io.FileNotFoundException: classpath:/resources/cert.p12 (No such file or directory)

我仔细检查了文件夹my_project/target/classes,以确保文件cert.p12存在。

在代码中,我试图访问该文件:

@Value("${cert.file}")
private String certFile;
....
@Bean
public Sender sender() {
    return new Sender(certFile);
}

这个类路径到底是什么?为什么它找不到文件?谢谢

共有3个答案

南宫凯康
2023-03-14

您可以只使用XXX.class。获取资源流(“filename”)。例如:

ObjectInputStream ois = new ObjectInputStream(MyClass.class.getResourceAsStream(PUBLIC_KEY_FILE));
        Key key = (Key) ois.readObject();
        ois.close();

这是我代码中的工作。MyClass是使用crt文件的类。我的公钥文件是“rsa/PublicKey”,只存储在src/main/resources/rsa文件夹中

贲培
2023-03-14

此语法不适用于普通的FileInputStream。请改用Spring Resourceloader。

@Autowired
private ResourceLoader resourceLoader;

@Value("${property.name}")
private String property;

File getPropertyFile(){
    return resourceLoader.getResource(property).getFile();
}

应用程序.属性

property.name=classpath:filename.txt
武睿
2023-03-14

类路径包括资源目录中的内容。

尝试:

cert.file=classpath:cert.p12

我假设您有标准的maven目录结构。

 类似资料:
  • 我从我的IntelliJ Java 15 Gradle项目的resources文件夹中的子文件夹加载文件时遇到问题...

  • 我有一个spring boot应用程序,我想在其中外部化消息。我将这些消息分为错误、信息和成功。因此,我创建了如下所示的嵌套文件夹结构: 并且,我正试图通过以下方式从服务中访问它: 这给了我以下例外情况: missingResourceException:找不到bundle的基本名称错误,区域设置为 但是,如果我将属性文件保存在下面的文件夹之外,它可以正常工作: null

  • 我正在使用Spring Boot和json模式验证程序。我正在尝试读取一个名为来自文件夹。我试过几种不同的方法,但都没能奏效。这是我的密码。 这是文件的位置。 在这里,我可以看到文件夹中的文件。 但是当我运行代码时,我得到了以下错误。 我在代码中做错了什么?

  • 通过使用android 11(SDK API 30)设备下面的一些方法 但在Android11中运行良好。无法使用如下所示的方法使其im 函数调用 uri是我从拾取器的响应中获得的视频路径。 copyFile的函数调用 错误:new ;path:/storage/emulated/0/download/stop/mp4_20210128225711.mp4 system.err:java.io.f

  • Section " SetFileAttributes" SetFileAttributes "C:\demo" HIDDEN ;设置文件夹属性为隐藏 SetFileAttributes "C:\demo\demo.txt" HIDDEN|READONLY ;设置文件属性为隐藏,只读 SetFileAttributes "C:\demo\demo.txt" NORMAL ;恢复

  • 来自OpenJDK的Dockerfile:8-jdk-alpine ADD target/.war admin_portal.war ENTRYPOINT[“java”,“-jar”,“admin_portal.war”]来自OpenJDK的Dockerfile:8-jdk-alpine ADD target/.war ui_app.war ENTRYPOINT[“java”,“-jar”,“ui