【发布时间】:2014-01-28 04:07:19
【问题描述】:
我有标准的maven项目结构:
-src
|
--main
|
---java
---resources
|
----file.txt
我需要在应用启动时读取此文件(读取 DB 架构并执行 SQL 脚本,因此此文件通过 FileReader 打开)。构建应用程序后,使用以下代码从project/target/classes/file.txt 获取它:
getClass().getResource("/file.txt").getFile()
此文件也出现在结果 jar 文件的根目录中。并且应用启动后无法访问,因为它是在jar文件附近而不是里面搜索的。
当这个文件在 jar/resource 文件夹中时如何访问它?
【问题讨论】:
-
当你使用类加载器而不是类时发生了什么?删除斜线后发生了什么?
-
当我删除斜线 - NPE 发生。如果我使用 ClassLoader 并删除斜杠,则会在
target/classes/中搜索文件。 -
您确定您的资源目录包含在 jar 中吗?如果有,在哪里?
-
@KevinWorkman,如果我解压结果 jar 文件,我的
file.txt就在它的根目录中。