私は、startup.jarとresource.jarの2つのJarファイルにパッケージ化されたアプリケーションを作成しています。 resource.jarに私はJavaファイル(ResourceFile.java)は、コードの下にいています"class.getResource("/")"を使用した場合のNullPointerException
String dir = ResourceFile.class.getResource("/").getPath();
アプリケーションは「startup.jarが」を実行して起動する必要があります(2つのJARファイルが同じディレクトリに置かれます)が、私は常に上記のコードではNullPointerExceptionを取得し、私はまた、コードの下にそれを変更しようとしています:
String dir = ResourceFile.class.getClassLoader().getResource("").getPath();
は同じエラーを得ました。
System.out.println(ResourceFile.class.getResource("/") == null);
print true。
私はちょっと見渡しましたが、問題を解決するのに役立つ解決策を見つけることができませんでした。
jarから実行したときにファイルを取得できるのは 'getResource'だけです。存在する必要があります。 –
リソース ''/''または '' ''が存在するはずの理由は何ですか? – rkosegi
@rkosegi jarがどのようにビルドされているか(ジッパーにファイルのみが含まれている場合、または誤っていない場合はディレクトリエントリが含まれている場合) 'getResource(" ")'はjarファイル内のパッケージのフォルダを指します。指定されたクラス –