当前位置: 首页 > 面试题库 >

无法从资源目录加载属性文件

厉永宁
2023-03-14
问题内容

我从Git存储库导入了一个项目,并在Eclipse中为其添加了Maven性质。在资源文件夹中,我添加了一个名为的配置文件myconf.properties。现在,每当我尝试从Java代码打开此文件时,都会得到FileNotFoundException。该文件也存在于target/classesmaven编译项目后生成的文件夹中。

谁能告诉我可能是什么问题?我尝试加载此文件的Java代码是:

props.load(new FileInputStream("myconf.properties"));

其中props是一个Properties对象。

谁能给我一些有关如何解决此问题的提示?


问题答案:

如果文件在编译后被放置在目标/类下,则它已经在构建路径中的目录中。目录src / main /
resources是此类资源的Maven默认目录,并且Eclipse Maven插件(M2E)自动将其放置到构建路径中。因此,无需移动属性文件。

另一个主题是如何检索此类资源。构建路径中的资源自动位于正在运行的Java程序的类路径中。考虑到这一点,您应该始终使用类加载器加载此类资源。示例代码:

String resourceName = "myconf.properties"; // could also be a constant
ClassLoader loader = Thread.currentThread().getContextClassLoader();
Properties props = new Properties();
try(InputStream resourceStream = loader.getResourceAsStream(resourceName)) {
    props.load(resourceStream);
}
// use props here ...


 类似资料:
  • 我从Git存储库中导入了一个项目,并在Eclipse中向其添加了Maven nature。在resources文件夹中,我添加了一个名为的配置文件。现在,每当我试图从我的Java代码打开这个文件时,我会得到。该文件也存在于maven编译项目后生成的文件夹中。

  • 我想在不同的子目录中保存不同的css和js文件,这是我的目录结构 然后我尝试将所有这些文件导入到我的索引中。html文件(由“/”映射),但没有正确导入。我应该配置什么使Spring boot能够在“资源”下的所有子目录中递归搜索资源?另外,如果我还想将所有html模板放在子目录中,该怎么办?

  • 我已经将我的项目上传到githttps://github.com/gitekiras/spring-boot-gradle-mvc 我不能得到正确的是,我不能加载css和js从资源文件夹。 当我把它放在webapp文件夹,我能够得到每件事情的工作,但根据教程,我应该把它们放在资源的静态文件夹。 但是当我这样做的时候,我不能加载页面上的css和js。 谁能说出我错过了什么? 另外:当我在浏览器日志中

  • 我读过https://flutter.dev/docs/development/ui/assets-and-images#asset-包依赖项中的图像和从资产中读取的文本文件,并应用了所有这些,但我的代码仍然无法工作。。。。 我为此打开了一个新项目,在主文件夹中创建了资产和文件: 然后,不信任Android Studio,我检查了vi,在pubspec.yaml一切都好: 该文件以以下内容结尾:

  • 问题内容: 我正在用NodeJS编写应用程序。 我在同一目录中有两个文件,但是每当我调用其中一个时: 从我的index.html加载资源失败错误。 谢谢! 问题答案: 要使用Express提供静态文件,您应该使用或以其他方式为每个拥有的html文件定义一个新路径,或者重新发明所提供的功能。 您可以执行以下操作: 将您的文件放在子目录中。例如: 文件将每2秒重定向一次。 您可以从GitHub下载此示

  • 现在我已经阅读了这里的文档:http://docs.oracle.com/javase/tutorial/uiswing/components/icon.html 但是我仍然不明白...我如何在我的代码中实现它? 我不能将getImage更改为getResources,因为它需要一些东西,我不知道是什么。 编辑:这是图像行现在的样子:图像pic=