热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java项目打包成JAR后无法正确访问resources目录下的文件资源

在多模块项目中,项目A作为一个独立的工具包,不依赖于任何第三方库。其目录结构如下:`--src--main--java--resources`。当将项目A打包成JAR文件后,发现无法正确访问`resources`目录下的文件资源。这一问题可能源于JAR文件的构建配置或类路径设置不当,需要仔细检查Maven或Gradle的构建脚本,确保资源文件被正确包含并加载。

一个项目是分模块开发的,项目A是个工具包,没有第三方依赖,目录如下:

--src

--main

--java

--resources

--db

--sqlite.db

A的一个函数功能就是将A的resources目录下的db/sqlite.db文件拷贝到指定的目录下

InpuStream is = this.getClass().getClassLoader().getResourceAsStream("/db/sqlite.db");

Files.copy(is,dirPath);

现有一个SpringBoot项目B,通过maven引入A

B在idea运行时A没有报错

B打包为jar包后,命令行运行A报错

获取到的InputStream为null,Files.copy报NPE

将B打包后的jar解压后,lib目录下的A.jar内是有文件的

这个路径究竟该如何获取?

"db/sqlite.db"和"/db/sqlite.db"都不行

this.getClass().getResourceAsStream("");

也都不行

用Guava的Resources工具也不好使,这种难不成写代码一套,打包一套吗?

A 的pom文件如下

src/main/java

**/*.yml

**/*.properties

**/*.xml

**/*.db

false

src/main/resources

**/*.yml

**/*.properties

**/*.xml

**/*.db

false

B 的pom文件如下,由于Parent是自己的项目,没有继承spring-boot-parent-starter,所以B的pom多写了些配置

access\_server

src/main/java

**/*.yml

**/*.properties

**/*.xml

**/*.db

false

src/main/resources

**/*.yml

**/*.properties

**/*.xml

**/*.db

false

org.springframework.boot

spring-boot-maven-plugin

com.gree.hvac.access.AccessApplication

boot

ZIP

true

true

repackage



推荐阅读
author-avatar
形同陌路2502906543
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有