次のプロジェクト構造のようなものがあります
-project 
    -src/main/java // source folder
        -com.mypackage
            -Utility.java
            -some.properties
    -src/main/resources // source folder
        -configuration_files
            -configuration_report.txt
私はjarEclipseのExport関数で生成しています。上記はjar、次の構造の に変換されます。
-myjar.jar
    -com
        -mypackage
            -Utility.class
            -some.properties
    -configuration_files
        -configuration_report.txt
クラス内で、 fromUtilityを取得しようとしています。InputStreamconfiguration_report.txt
私はこれを行っていました(staticメソッド内にあります):
Utility.class.getResourceAsStream("/configuration_files/configuration_report.txt"); 
ファイルはそれを要求するクラスと同じパッケージにないため、これはこの質問への回答によって検証されるようです。
ただし、実行すると、が返されますnull。なんで?
some.propertiesファイルについては、両方を実行できることに注意してください
Utility.class.getResourceAsStream("/com/package/some.properties");
Utility.class.getResourceAsStream("some.properties");
そして私はストリームを取得します。
違いがある場合は、コマンドラインからこれを実行しています。
java [-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=1044] -cp myjar.jar MyMain
Eclipse内で実行しようとすると、動作します...
編集:
このコードは関連しています。前の の有無にかかわらず、/null を返します
    String sourceFilePath = "/configuration_files" + File.separator + "configuration_report.txt";
    InputStream in = Utility.class.getResourceAsStream(sourceFilePath);