私は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 ...
どのような援助が大幅に高く評価されます!