1

私は次のコードを持っています:

 public class App {
   public static void main(String[] args) {
     System.out.println(App.class.getClassLoader().getResource("test.properties"));
     System.out.println(App.class.getClassLoader().getResource("test.txt"));
     System.out.println(App.class.getClassLoader().getResourceAsStream("test.properties"));
     System.out.println(App.class.getClassLoader().getResourceAsStream("test.txt"));
     System.out.println(App.class.getResourceAsStream("test.properties"));
     System.out.println(App.class.getResourceAsStream("test.txt"));
   }
 }

このコードは次の出力を提供します。

file:/C:/../test.properties 
null 
java.io.BufferedInputStream@18e2b22 
null 
java.io.BufferedInputStream@1cb1c5fa 
null 

ClassLoaderが.txtファイルのロードを拒否するのはなぜですか?

更新しました:

両方のファイルがクラスパスにあると確信しています。クラスパスは/srcに設定され、両方のファイルがこのディレクトリにあります。

4

2 に答える 2

2

Most likely your txt file is not on the classpath

于 2012-04-17T09:49:34.543 に答える
1

ClassLoaderを使用してロードするファイルが .xml ファイルに含まれていることを確認する必要がありますclasspath。通常、そのようなリソースは格納され/src/main/resources、クラスパスに含まれます。

Eclipse を使用している場合は、エクスプローラーでプロジェクトを右クリックしてProperties -> Java Build Path -> Source (Tab) -> Add Folder... (Button)、そこにフォルダー構造を追加します。

于 2012-04-17T09:54:24.170 に答える