阅读了this问题后,我尝试了以下方法来读取使用IntelliJ构建的Maven项目中类路径下的文件:
public class testTemplateManager {
private TemplateManager templateManager;
private String m_includePath;
public void createTemplateManager() {
String relativePath = "/src/main/java/com/eprosima/templates";
String fileName = "idlTypes.stg";
String filePath = relativePath + "/" + fileName;
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream res = classLoader.getResourceAsStream(var4);
if(res == null) {
classLoader = this.getClass().getClassLoader();
res = classLoader.getResourceAsStream(var4);
}
if(res != null) {
return new BufferedReader(getInputStreamReader(res));
}
}
无论相对于项目根目录的路径是什么,资源res始终为null。我尝试使用以下路径,结果相同:
String relativePath = "src/main/java/com/eprosima/templates";
String relativePath = "src/main/java/com.eprosima/templates";
类路径看起来像: 我需要读取位于/src/main/java/com/eprosima/templates的模板文件。