getResourceAsStreamメソッドは、感嘆符で終わるディレクトリで実行可能 jar を実行すると常に null を返します。
次の例では、次のディレクトリ構造の Eclipse プロジェクトがあります。
src\ (Source Folder)
main\ (Package)
Main.java
res\ (Source Folder)
images\
Logo.png
次のように Logo.png を読んでいます。
public static void main(String[] args) throws IOException {
try (InputStream is = Main.class.getClassLoader().getResourceAsStream("images/Logo.png")) {
Image image = ImageIO.read(is);
System.out.println(image);
}
}
2 つのテスト ケースについては、添付ファイルを参照してください。まず、実行可能jarがディレクトリ「D:\test123!@#」から問題なく起動されます。次に、実行可能 jar がディレクトリ「D:\test123!@#!!!」から開始されますが、問題があります。
感嘆符で終わるディレクトリはサポートされていませんか? コードが間違っていますか?
前もって感謝します。