2

getResourceAsStreamメソッドに問題があります-ディレクトリが間違っているため、nullが返されます。問題は、dirを定義する方法がわからないことです。

私のプロジェクト構造はそのように見えます

Project
  #src
    #com.package
      #ExampleClass.java
  #dll
    #MyFile.dll

私が持っているとき

InputStream in = this.getClass().getResourceAsStream("../dll/" + "MyFile.dll");

nullを返します。この問題にどのように対処し、パスをどのように定義するかについて誰かが考えていますか?

4

2 に答える 2

3

thisがパッケージに含まExampleClassれている場合com.package、CLASSPATH のルートに到達するには、2 レベル上に移動する必要があります。

this.getClass().getResourceAsStream("../../dll/" + "MyFile.dll");

/dllディレクトリが CLASSPATH のルートに直接配置されていると仮定します。または、単に絶対パスを使用します。

this.getClass().getResourceAsStream("/dll/" + "MyFile.dll");

/dll/MyFile.dllCLASSPATH にない場合(JAR ファイルを開いて、そこにあるかどうかを確認するだけです)、ファイル システム メカニズムを使用して開く必要があります。

于 2012-07-05T13:47:53.420 に答える
0

プロジェクト上の MyFile.dll の場所ではなく、クラスパス内の MyFile.dll の場所に依存します。クラスから読み取るファイルを置く場所を見てください

于 2012-07-05T13:50:22.543 に答える