我有两个java项目。项目B是一个实用程序,旨在打包为jar并由其他项目调用。项目A需要调用项目B.但是,当项目B调用ClassLoader getResource()时,它正在从项目A加载资源。如何从项目B加载它? 看起来这应该很容易,所以我觉得我一定会错过一些简单的东西。 以下代码位于项目B中,从项目A调用.path / to / file.txt位于项目B的resources文件夹中。
System.out.println(Paths.get(classLoader.getResource("path/to/file.txt").toURI()).toString());
Output: C:\Users\....\projectA\target\test-classes
答案 0 :(得分:0)
通常,您实现此目的的方法是在path/to/file.txt
中包含B.jar
作为资源。
作为示例,在您的Maven项目中包含Guava
19.0作为编译时依赖项(看起来您正在使用Maven)。以下代码适用于我:
// pom.properties is bundled in guava-19.0.jar.
URL resource = Example.class.getResource("/META-INF/maven/com.google.guava/guava/pom.properties");
System.out.println(resource.toString());