采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
java.io.FileNotFoundException: file:\E:\apache-maven-3.5.3\lib\com\ggstar\ipdatabase\1.0\ipdatabase-1.0.jar!\ipRegion.xlsx (文件名、目录名或卷标语法不正确。)
我的路径没有中文,并且我查了目录,确实有这个文件,在jar包里面有这个文件,我不知道jar!的感叹号是啥意思,是不是感叹号的原因,该怎么解决
在网上查阅,发现可能是打成jar包,文件在jar包里面,导致文件路径不能用,
打开源码看到问题
源码中是使用getResource(ipFile)方法,但是这种方法在生成jar包后,java是无法读取文件路径,所以会出错
只能使用getResourceAsStream(ipFile)方法,这样获得的就是InputStream流,然后再把InputStream转换成BufferStream就可以使用了
同理,对ipRegion.xlsx也可以使用
但这个有些不同,生成InputStream后,要运行getWorkBook(),这个方法传进去的参数是String类型的一个文件路径,于是可以进入到PoiUtil类中,修改getWorkbook方法,改变穿进去的参数类型
把String类型改成InputStream类型,原本方法中是得到FileInputStream,然后在运行create方法,其实也是通过InputStream类型传过去的。(在WorkbookFactory类中可以看到)然后只要把create中的New FileInputStream(filePath)改成filepath,就可以运行了
有什么不足,欢迎指出!
这个文件应该是一个resouces类型的目录的,你看下是否是resource类型的。感叹号就是去classpath下找
jar包里面也有这个文件,但是就是报错
登录后可查看更多问答,登录/注册
快速转型大数据:Hadoop,Hive,SparkSQL步步为赢
1.6k 6
1.7k 6
1.9k 1
1.2k 21
1.5k 18