getResourceAsStream -methodは感嘆符で終わるディレクトリで実行可能なjarを実行するたびにnullを返します。次のように私はLogo.pngを読んでいる感嘆符(!)で終わるディレクトリでリソースを開くことができません
src\ (Source Folder)
main\ (Package)
Main.java
res\ (Source Folder)
images\
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テストのために、添付ファイルを参照してください。次の例では、私は、Eclipseプロジェクトに次のディレクトリ構造を
を持っていますケース。まず、実行可能なjarはディレクトリ "D:¥test123!@#"から問題なく起動されます。第2に、実行可能なjarはディレクトリ "D:¥test123!@#!!!"から起動され、問題があります。
感嘆符で終わるディレクトリはサポートされていませんか?コードが間違っていますか?
ありがとうございます。おそらくこのためにバグやJavaのバグデータベースには多くの類似したバグのいずれかの
通常の名前のディレクトリを作成/使用する理由はありますか? – mtk
両方のディレクトリに同じjarファイルを置いてもよろしいですか? – Andremoniy
ユーザーは自分のファイルシステムのどこからでもアプリケーションを実行できます。感嘆符付きのディレクトリはWindowsでサポートされています。 – Velth