JAR内にパッケージ化されたファイルと、それを読み取るクラスから読み取ろうとしています。これを行うには、次を使用します。
getClass().getClassLoader().getResourceAsStream(file)
これは、OSX で JAR ファイルを作成して実行すると問題なく動作しますが、Windows で JAR ファイルを作成して実行すると、上記の行は null を返します。
ここで何か不足していますか?OSX で JAR を作成して Windows で実行すると、正常に動作します。この問題は、Windows で JAR を作成するときにのみ発生します。
編集: JAR ファイル内にフォルダー階層がないことに注意してください。すべてが 1 つのレベルに格納されるため、ファイルを読み取るクラスとファイル自体は両方とも同じディレクトリにあります。さらに、これは私がOSXとWindowsの両方でJARファイルを作成する方法です:
jar -cmf manifest.mf run.jar *.class file1 file2
編集 2: ロードしようとしているファイルは、java .properties ファイルです。それが問題の原因ではないと思いますか?