0

Tomcat で実行されている Web アプリケーションに含めるために JAR ファイルとしてエクスポートしたスタンドアロン アプリケーションがあります。

スタンドアロン アプリは、次の行を介して、パッケージ「config」内にあるファイルから読み取ります。

configFileName = Thread.currentThread().getContextClassLoader().getResource("config/indexer.cfg").getPath();

残念ながら、これにより Web アプリで例外が発生します。

java.io.FileNotFoundException: file:\C:\apache-tomcat-7.0.23\IRSimWebApp\WEB-INF\lib\IR_Sim.jar!\config\indexer.cfg (The filename, directory name, or volume label syntax is incorrect)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)

ファイル パスに感嘆符があることに気付きました。これによりエラーが発生する可能性はありますか? どうやってそこにたどり着いたのですか?

4

1 に答える 1

1

リソースを次のように取得することで、より良いサービスが提供されるようですInputStream

InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("config/indexer.cfg");
if (in != null) {
    BufferedInputStream buff = new BufferedInputStream(in);
    // process buff to get contents of file
    buff.close();
}

上記の例外処理は明らかにありませんが、アイデアを得る必要があります...

于 2013-02-20T18:38:27.297 に答える