0

.XML ファイルを他の機能のテンプレートとして参照する Eclipse の Java アプリケーションがあります。通常、これらのファイルを含めずに .JAR ファイルをパッケージ化します。これらのファイルを .JAR ファイルと同じフォルダーに配置すると、次の参照で問題なく動作するように思われるからです。

File myFile = new File("templates/templateA.xsd");

これらのテンプレートは、このアプリケーションと同じ .JAR ファイル内に配置する必要があります。問題なく含めることができますが、これらの参照は機能していないようです。

アプリケーションが実行されているのと同じ .JAR 内から .​​XML ファイルを参照する正しい方法はありますか?

4

2 に答える 2

2

クラスパスからファイルをロードする方法を知る必要があります。方法の1つは次のとおりです

class XMLLoader {

    public String loadXML(String fileName){
         InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(fileName);
    // do the loading of the file from the given input stream.
   }

}

「templates」フォルダーは jar 内にある必要があることがわかっています。

于 2013-03-22T08:55:04.923 に答える
1

このファイルを読み取る必要があるだけの場合は、java.io.File は必要なく、経由で取得できる InputStream だけが必要な場合があります。

this.getClass().getResourceAsStream("templates/templateA.xsd")

本当に java.io.File が必要な場合...わかりません... 前回本当に File が必要だったとき、InputStream を一時ファイルにコピーしただけですが、これは醜いです。

于 2013-03-22T08:51:57.070 に答える