我在Java编程几周后尝试从类路径之外的文件夹中获取pentao报告定义,但迄今未成功。Java从类路径之外加载资源(pentaho)
下成功加载来自包含在类路径中的文件夹中的定义,但我无法弄清楚如何从一个绝对路径得到它的类路径之外:
// Parse the report file
final URL reportDefinitionURL = classloader.getResource("some/path/inclass/Sample1.prpt");
final ResourceManager resourceManager = new ResourceManager();
final Resource directly = resourceManager.createDirectly(reportDefinitionURL, MasterReport.class);
return (MasterReport) directly.getResource();
我不知道如果这是Pentaho的专用或通用的Java问题,但我怎么能得到基于未位于如
"/usr/share/pentaho/Sample1.prpt" ?
我已经尝试了本类路径的绝对路径(Linux版)上的文件的定义:
File file = new File("/usr/share/pentaho/");
URL url = file.toURI().toURL();
URL[] urls = new URL[]{url};
ClassLoader cl = new URLClassLoader(urls);
final URL reportDefinitionURL = cl.getResource("Sample1.prpt");
我也曾尝试包括在运行的外部路径但这似乎并没有工作,要么:
java -cp ./lib/*:/usr/share/pentaho/*.prpt ...
任何帮助是非常感谢!