java.io.FileNotFoundException--没有那个文件或目录! 项目打成jar,在liunx上提示找不到文件的解决方案

2 篇文章 0 订阅
2 篇文章 0 订阅

框架:nutzboot

 

最近公司要再平台上搞点数据,大概十几万吧,但是java读取那么大的数据的时候,会造成oom,所以我把文件分成4份,循环跑。这不是今天的重点

今天重点是当我在工具或者jar包在windows上跑的时候一切正常。但是在liunx服务器上就会报错 :

我是这样写的:

 

  File file = new File(files);
  FileInputStream fis = new FileInputStream(file);

所以猜想win和liunx机制不一样吧(windows亲民,liunx特殊,高级)

 

 

于是抱着尝试的态度直接用流读!

InputStream inputStream = this.getClass().getResourceAsStream(files);

当然 文件流本就来就是继承InputStream的 

 

然后,完美解决,其他代码不用动,excel的工具类都是保持原样

虽然不是spring,但是道理是一样的,只要你能在win读取这个文件,然后把方式换成这样就可以!因为这个东西是java的!

如果是spring(boot) 路径可能要变下,加个 classpath:/ (盲猜,具体好像spring有自带的)

OK  解决!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 这是一个Java异常,表示系统无法到指定路径下的文件。具体错误信息为:java.io.filenotfoundexception: jdbc-demo\src\druid.properties (系统不到指定的路径。)。可能是路径不存在、文件名错误或者权限不足等原因导致的。需要检查路径和文件名是否正确,并确保程序有足够的权限访问该文件。 ### 回答2: 问题描述: 在运行 JDBC 程序时,出现了 java.io.filenotfoundexception: jdbc-demo\src\druid.properties (系统不到指定的路径。) 错误,这个错误是由什么原因引起的,应该怎么解决? 解决方法: 1. 检查路径是否存在 在程序运行时,如果使用相对路径指定某个文件,那么就需要确保该文件所在的路径存在。在本例中,程序试图读取jdbc-demo\src\druid.properties文件,那么我们需要确保jdbc-demo目录下包含src子目录,src子目录下包含druid.properties文件。 2. 确认文件名是否正确 程序中指定的文件名必须与实际文件名完全一致,包括大小写。在本例中,程序试图读取druid.properties文件,那么我们需要确保该文件名完全一致,不要出现大小写或拼写错误。 3. 以绝对路径方式指定文件名 如果相对路径无法文件,也可以采用绝对路径的方式来指定文件名。这样就可以确保程序能够到该文件。 4. 检查文件权限 如果文件权限设置不正确,程序也无法读取该文件。确保文件权限设置正确,同时也要确保文件所在目录的权限设置正确。 结论: 出现 java.io.filenotfoundexception: jdbc-demo\src\druid.properties (系统不到指定的路径。) 错误,可能是由于路径不存在、文件名错误、文件权限不正确等原因引起的。解决方法包括检查路径是否存在、确认文件名是否正确、以绝对路径方式指定文件名、检查文件权限等。 ### 回答3: 这是经典的Java异常错误之一,通常发生在读取文件时。该异常 message 的具体含义是:"系统不到指定的路径",即程序无法到指定的目录文件。 那么,这个错误出现的原因有哪些呢? 最常见的原因是路径错误,即程序给定的路径不正确。文件到的原因可能是路径名没有指定正确,或者是文件名指定错误;也可能是文件本来就不存在。你得先来确定 JDBC-Demo\src\druid.properties 文件确实存在,这个路径和文件名是不是写对了。 另外还可能会由于文件权限问题造成的。某些环境下,读写文件需要特殊的权限,而程序不具备这些权限,则会出现文件到的问题。因此,你需要确认程序是否对该目录有读取权限,或者是否被其他程序占用了。 还有可能是程序并发读取文件导致的问题,如果多个线程同时处理文件读取,就有可能会导致文件不存在的错误。这时候可以考虑加上同步锁,避免文件并发读写。 总之,要解决这个问题,需要先确定文件路径是否正确,确认该路径下是否存在该文件,以及程序对该目录是否有权限读取操作。如果这些都没有问题,可以考虑重启程序或查看文件是否被其他程序占用,进一步排除故障。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值