0

私の質問は以前に回答されたようですが、私の場合の回答が見つかりません。

私がやろうとしているのは、リソースからファイルタイプを取得することです。これにより、パッケージ化されたときにアクセスできるようになります。私が見つけた答えはそのファイルを読み込もうとしていましたが、私が本当に必要としているのは、そのオブジェクトを期待しているサードパーティのライブラリがあるため、Fileオブジェクトを作成することです。

これが私が試したコードです:

    String xslFilePath = new Test().getClass().getResource("/com/test/decision_template.xsl").getPath();
    System.out.println(xslFilePath);
    File xsltfile = new File(xslFilePath);
    System.out.println(xsltfile.getAbsolutePath()+", exist:"+xsltfile.exists());

私はこの結果を得ました:

    C:\>java -jar test.jar
    file:/C:/test.jar!/com/test/decision_template.xsl
    C:\\file:\C:\test.jar!\com\test\decision_template.xsl, exist:false
    java.io.FileNotFoundException: file:\C:\test.jar!\com\test\decision_template.xsl
    (Syntaxe du nom de fichier, de rÚpertoire ou de volume incorrecte)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:120)
    at com.test.Test.main(Test.java:30)

.exists()がtrueを返すように、そのファイルを取得する方法が必要です。

4

1 に答える 1

0

TrueZip ライブラリを試すことができます。それはかなりいいです。独自の DirectoryScanner などを実装する必要があると思います。

さらに良いことに、クラスパス上のすべての jar をスキャンする独自の実装を作成するだけです。これは、GitHub の私のプロジェクトの 1 つでどのように実行したかの例です。お客様のニーズに合わせて簡単にカスタマイズできると思います。

楽しむ!:)

于 2013-02-27T19:07:34.523 に答える