原因:java.io.FileNotFoundException:类路径资源[application.properties]无法打开,因为它不存在

时间:2019-04-15 10:47:09

标签: spring spring-boot spring-batch

我正在创建一个Spring Boot Batch应用程序。该批处理从postgres加载数据并将其插入MongoDB。我已经编写了代码,但是在运行spring boot应用程序时,它显示错误,找不到{{ $project->created_by }} 文件。以下是错误摘要:

application.properties

以下是'Caused by: java.io.FileNotFoundException: class path resource [application.properties] cannot be opened because it does not exist' org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.example.batch.SpringBatchExample]; nested exception is java.io.FileNotFoundException: class path resource [application.properties] cannot be opened because it does not exist 文件的内容:

application.properties

请让我知道为什么我遇到这个问题?

10 个答案:

答案 0 :(得分:0)

application.properties文件移动到资源目录。

答案 1 :(得分:0)

  1. 检查您的application.properties文件是否在resources目录中,如下图所示: enter image description here

  2. 如果您将application.properties保留到下图所示的其他文件夹(例如config),请按照以下代码配置pom.xml:

    <build>
    <resources>
        <resource>
            <directory>config</directory>
            <targetPath>${project.build.outputDirectory}</targetPath>
            <includes>
                <include>application.properties</include>
            </includes>
        </resource>
    </resources>
    

enter image description here

答案 2 :(得分:0)

对于固定路径,您可以使用:

@PropertySource(“文件:$ {C:/ Development / workspace / Projectname / resources /} / application.properties”)

答案 3 :(得分:0)

Use this on configuration class

@Configuration
@PropertySource("classpath:application.properties")

(OR)

Use this in xml file

<bean       class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>application.properties</value>
            </list>
        </property>
    </bean>

答案 4 :(得分:0)

您需要在“运行配置”的“引导程序”选项卡中配置 config 路径(projectBaseName \ target \ local \ config),因为所有属性文件都位于类路径中。You can follow bellow picture for the same

答案 5 :(得分:0)

将其标记为根资源。

这是在intellij中完成的方式:

enter image description here

答案 6 :(得分:0)

配置pom.xml文件添加资源;

 <build>
        <finalName>your-project-name</finalName>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.yml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <filtering>true</filtering>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.yml</include>
                </includes>
                <excludes>
                    <exclude>**/*.java</exclude>
                    <exclude>**/*.class</exclude>
                </excludes>
            </resource>
        </resources>
</build>

答案 7 :(得分:0)

对我来说,解决方案是将库(在我的情况下是我的主项目的依赖项)重新添加到我正在处理的主项目的程序集部署中。出于某种原因,Eclipse 无法在其类路径中检测到此项目。

https://i.stack.imgur.com/pyvTk.png

答案 8 :(得分:0)

而不是在@sqlgroup 的@sql 注释中使用classpath:filepath 文件:文件路径 它让java在整个文件夹中搜索类似路径的文件,对我来说就像一个魅力

答案 9 :(得分:-1)

我的问题是一样的。您正在尝试在项目中连接多个数据库。

在主应用程序运行中有一个注释,如:

{ { {@PropertySources({@PropertySource("/../resources/datasource_cfg.properties")})}

这是运行应用程序时解析的路径。也许您的路径不正确。