FileNotFoundException:xxx(系统找不到指定的路径)

这篇具有很好参考价值的文章主要介绍了FileNotFoundException:xxx(系统找不到指定的路径)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

背景

解决方法

错误示例


前言

这次是有个两年前的项目吧,不知道为什么无法启动了。中间迭代了多个版本,现在另一个同事接手了,领导让看一下。因为时间间隔过长,问题处理比较费劲。其中有的是配置问题,比较好解决。

中间有个FileNotFoundException的问题困扰了很长时间,最后找了个简单法子解决,希望给有碰到的网友提供些方法和灵感。报错如下:

FileNotFoundException:xxx(系统找不到指定的路径),idea,intellij-idea,firefox,java,后端,idea

背景

我用的idea而领导用的eclipse,这个无论是哪个用tomcat是没有这个错误的。而使用maven启动就不行,原因大致如下:

1.当我们使用Maven来运行Spring Boot Application时,它默认会从项目的根目录下的 /src/main/resources 文件夹读取资源文件。

2.而当我们使用Tomcat来运行Spring Boot Application时,它会从编译过后的 /target/classes 文件夹读取资源文件。

3.最后还发现了在pom文件中有相关创建etc文件夹下的代码,关键代码和截图:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-war-plugin</artifactId>
   <version>2.1.1</version>
   <configuration>
      <!--将类文件打成war包 -->
      <failOnMissingWebXml>false</failOnMissingWebXml>
      <!--将资源文件打到classes目录下 -->
      <webResources>
         <resource>
            <directory>data/poem</directory>
            <targetPath>WEB-INF/data/poem</targetPath>
            <filtering>true</filtering>
         </resource>
         <resource>
            <directory>etc</directory>
            <targetPath>WEB-INF/etc</targetPath>
            <filtering>true</filtering>
         </resource>
      </webResources>
   </configuration>
</plugin>

FileNotFoundException:xxx(系统找不到指定的路径),idea,intellij-idea,firefox,java,后端,idea

问题流程:可以正常启动,中间报错也可以,但是访问接口就会报错,然后自动停止(maven启动)。如下图:

FileNotFoundException:xxx(系统找不到指定的路径),idea,intellij-idea,firefox,java,后端,idea

FileNotFoundException:xxx(系统找不到指定的路径),idea,intellij-idea,firefox,java,后端,idea

解决方法

1.直接在下面建立一个名为etc文件夹的

FileNotFoundException:xxx(系统找不到指定的路径),idea,intellij-idea,firefox,java,后端,idea

2.在IDEA中,你可以通过以下步骤设置Maven的工作目录:

  1. 在IDEA的右侧边栏中打开 "Maven Projects" 工具窗口。
  2. 找到你想运行的Maven项目,右键点击并选择 "Run Maven Build..."。
  3. 在弹出的对话框中,找到 "Working directory" 区域,填入你想设置的目录路径,比如

FileNotFoundException:xxx(系统找不到指定的路径),idea,intellij-idea,firefox,java,后端,idea

  1. 之后每次运行该Maven项目时,都会使用你设置的工作目录。这样应该就可以解决你的问题了。

提醒一下,使用绝对路径可能会导致你的项目在其他环境中无法正常运行。如果可能,建议你使用相对路径或类路径来引用资源文件。

思路:我们在报错日志中可以明显看到这个是去寻找的绝对路径,所以我们如果只是想本地测试的话,直接使用上面的办法指定目录即可。

在代码中查到引用了一个包,包中的业务逻辑是查询项目下etc文件。因为我使用的时候是21年,所以我强烈怀疑是有人后期有改动这个配置的代码地址,并且我回滚后依旧无法正常启动。

FileNotFoundException:xxx(系统找不到指定的路径),idea,intellij-idea,firefox,java,后端,idea

错误示例

这些下面是我在网上百度是碰到的一些解决方法,没有顶用的,供大家参考下。

1.修改配置文件的路径:

data-cloud-service-client.properties

文件移动到你的源代码目录,如src/main/resources,然后在代码中使用

classpath:data-cloud-service-client.properties

FileNotFoundException:xxx(系统找不到指定的路径),idea,intellij-idea,firefox,java,后端,idea

2.使用Spring的@PropertySource注解: 如果你使用Spring,可以用@PropertySource注解来指定配置文件的位置。它可以支持文件路径和类路径,比如:

@Configuration
@PropertySource("file:E:/Project/unios/unios-skill-bspt/unios-skill-bspt-controller/etc/data-cloud-service-client.properties")
public class Application {
   public static void main(String[] args) {
      SpringApplication.run(Application.class, args);
   }
}

FileNotFoundException:xxx(系统找不到指定的路径),idea,intellij-idea,firefox,java,后端,idea

3.在Maven pom.xml文件中添加资源(有可能可以): 可以在pom.xml文件中指定额外的资源路径。下面是一个例子:

<resources>
            <resource>
                <directory>unios-skill-bspt/${project.basedir}/etc</directory>
                <includes>
                    <include>data-cloud-service-client.properties</include>
                </includes>
            </resource>
        </resources>

FileNotFoundException:xxx(系统找不到指定的路径),idea,intellij-idea,firefox,java,后端,idea

说实话这个bug解决倒是不难,难点在于找到bug的源头,尤其是多年的老代码,真的是全靠自己扣,真是太费劲了。

今天就到这里吧,感觉有用的小伙伴可以点个赞,你的支持就是我更新的最大动力!文章来源地址https://www.toymoban.com/news/detail-609458.html

到了这里,关于FileNotFoundException:xxx(系统找不到指定的路径)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Idea显示无法自动装配。找不到‘ xxx’类型的Bean

    问题如下:  原因: 当我们在使用@Autowired注解的时候,默认required=true,表示注入的时候bean必须存在,否则注入失败。 解决方案一: 在自动转配的注解后面添加(required=false)  解决方案二: 在设置-编辑器-检查中找到如下位置,将选框中的 ‘√‘ 去掉

    2024年02月02日
    浏览(34)
  • ElasticSearch启动报错RollingFileManager (/xxx/xxx) java.io.FileNotFoundException

    ElasticSearch启动报错如下: Could not create plugin of type class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile: java.lang.IllegalStateException: ManagerFactory  Unable to invoke factory method in class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile: java.lang.IllegalStateExcept

    2024年02月14日
    浏览(26)
  • nginx在编译时找不到openssl,通过手动方式指定openssl路径

    1、报错让我安装openssl,或者制定openssl源码路径 2、离线安装一个openssl源码包 1、从官网下载一个openssl源码包,给它放到自己指定的一个目录里 2、解压openssl包 tar -zxvf openssl-1.1.1f.tar.gz 3、 进入nginx源码包安装目录,重新编译,指定openssl路径

    2024年02月11日
    浏览(36)
  • Android 依赖三方so库报错找不到dlopen failed:xxx not found 显示磁盘路径

    app中有 a模块, 在a模块中通过cmake 构建 libso_a.so , libso_a.so 依赖编译好的三方库 libso_b.so, 编译运行后 打开即崩溃.... so库加载失败,无法找到 且报错路径显示为磁盘路径; .....         java.lang.UnsatisfiedLinkError: dlopen failed: library \\\"E:/Hx/xxxxxxxxx/arm64-v8a/libso_b.so\\\" not found  通过readel

    2024年02月03日
    浏览(48)
  • 【已解决】无法加载 DLL“xxx.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

    异常 无法加载 DLL“xxx.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。 背景及产生原因 C#中采用DLLImport静态调用同事用C++写的dll算法库时,出现以下错误: 无法加载 DLL“xxx.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。 解决方法 查阅资料得知这种情况一般有

    2024年02月02日
    浏览(28)
  • vue3 vite配置@根路径---解决:找不到模块“./xx/xxx.vue”或其相应的类型声明

    如果在ts中使用可能会报错: 解决方案: npm install --save-dev @types/node 配置根路径后,引入文件可能会报红: vue3+ts报错:找不到模块“@/xxx”或其相应的类型声明。 ,或者是引入.vue文件的时候报红: vue3+ts报错:找不到模块“./views/login/index.vue”或其相应的类型声明。 出现这

    2024年02月16日
    浏览(26)
  • C# 提示:无法加载 DLL“XXX.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

    今天再调试程序时发现程序再笔记本上运行正常,然而拷贝到客户主机上之后出现了(System.DllNotFoundException: 无法加载 DLL“msc.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。)的问题,经过再三调试, 1、确认CPU平台为x86,正常 2、dll的路径,正常 经过再三的排除,发

    2024年02月11日
    浏览(34)
  • idea手动导入了包但编译运行还是报找不到xxx.jar包的问题

    1、先把jar包放目录下并add as libary 2、在pom.xml中加入 3、pom.xml中加入 4、build clean run 即可

    2024年02月16日
    浏览(41)
  • Linux 创建 intellij-idea快捷方式

    在 Linux 中,可以通过创建快捷方式的方式方便地打开 IntelliJ IDEA 开发工具。下面是创建 IntelliJ IDEA 快捷方式的详细步骤: 第1步:打开终端窗口 首先,要打开终端窗口。可以通过快捷键 Ctrl + Alt + T 打开终端窗口。也可以在系统菜单栏中选择“应用程序”-“实用工具”-“终端

    2024年02月03日
    浏览(51)
  • Intellij-idea 如何编译maven工程

    在 IntelliJ IDEA 中编译 Maven 工程是一个相对直接的过程。以下是基本步骤: 1. 打开或导入 Maven 项目 如果您已经有一个现有的 Maven 项目,可以直接在 IntelliJ IDEA 中打开它。选择 File Open,然后浏览到您的 Maven 项目文件夹,选择包含 pom.xml 的目录。 如果您是从现有的源代码导入

    2024年01月25日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包