首页 > 解决方案 > 用maven构建的jar文件找不到配置文件

问题描述

我用maven构建了一个jar文件。我在 jar 文件中的唯一类中使用以下代码来尝试访问配置文件。

 InputStream is = Myclass.class.getClassLoader().getResourceAsStream("/config.properties");

config.properties 文件位于路径 / 的 jar 文件中

我没有看到任何错误消息。但是当我尝试访问 Properties 对象中的值时,这些值为空。

 Properties prop = new Properties();
 prop.load(is);
 serverUrl=prop.getProperty("serverUrl");

serverUrl 为空。

关于如何在 jar 文件中获取配置文件中的值的任何建议?

标签: javamavenjar

解决方案


在我意识到以下方式仅适用于在类路径中加载文件之前,我遇到了同样的问题。

InputStream is = Myclass.class.getClassLoader().getResourceAsStream("/config.properties");

无论文件是否在类路径中,我都使用Apache FileUtils来选择文件。例如,我使用了以下功能,它就像一个魅力。

String str = FileUtils.readFileToString(new File(path_to_your_file), "UTF-8");
IOUtils.toInputStream(str, "UTF-8"); // if you need InputStream object

您也可以查看FileUtils提供的其他 API,除了readFileToString


推荐阅读