java - getResourceAsStream() 找不到属性文件。检查 CLASSPATH 或类加载器

标签 java maven classpath getresource

这是来自一个几乎没有支持的开源项目。项目编译顺利。但是由于找不到特定的属性文件,我无法测试或安装。我在互联网上上下搜索,但找不到任何解决方案。导演的组织有点标新立异。

一些目录。 core/src/main/java/org/mskcc/cbio/portal/util/Config.java.

String props = "portal.properties";
InputStream in = this.getClass().getClassLoader().getResourceAsStream(props);
...

更多目录。 src/main/resources/portal.properties.

最后一个 src 目录只有一个子目录 main, 并且主目录只有一个资源子目录。 找不到的文件位于此处。

我正在使用 Java 1.7。 maven 3.0.5 我使用的命令是mvn install

我一定是在某处遗漏了一个简单的配置。

肯定有人可以轻松解决这个问题。

最佳答案

src/main/resources 默认是 Maven 中 Aplication/Library 资源的路径。但是,您可以选择在 pom.xml 中强制执行此操作。

1) 在pom.xml中添加

<resource>
   <directory>src/main/resources</directory>
   <filtering>true</filtering>
</resource>

2) 运行 maven -> mvn clean install

3) 在“目标”文件夹生成的构建中搜索portal.properties。断言 portal.properties 位于 Artifact 类路径的根目录中(.jar、.ear 的根目录或 .war 中的/classes)。

关于java - getResourceAsStream() 找不到属性文件。检查 CLASSPATH 或类加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16681109/

相关文章:

android - 将库模块 jar 安装到本地 maven 存储库

java - 相同的包,不同的目录

java - GORM/Grails 中的家谱模型?

java - 如何修改Liferay用户注册?

java - Hibernate创建表但不设置对象

java - 是否有任何编码可以让我安全地在文件中写入和读取任何 8 位字符代码(整个 256 而不仅仅是 128)?

Maven 和 Exec : forking a process?

java - Maven在jar文件的根目录下打包镜像

java - 将 Java 1.8 包含在类路径中而不指定构建

android-studio - Android单元测试找不到Mockito软件包