Il metodo getResourceAsStream restituisce null ogni volta che si esegue il jar eseguibile in una directory che termina con un punto esclamativo.Impossibile aprire le risorse nelle directory che terminano con un punto esclamativo (!)
Per il seguente esempio, ho un progetto Eclipse la seguente struttura di directory:
src\ (Source Folder)
main\ (Package)
Main.java
res\ (Source Folder)
images\
Logo.png
sto leggendo il Logo.png come segue:
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);
}
}
Vedi l'allegato per 2 di prova casi. Innanzitutto, il jar eseguibile viene avviato dalla directory "D: \ test123! @ #" Senza problemi. In secondo luogo, il jar eseguibile viene avviato dalla directory "D: \ test123! @ # !!!", con problemi.
Le directory che terminano con un punto esclamativo non sono supportate? Il codice è sbagliato?
Grazie in anticipo.
C'è un motivo, è possibile creare/utilizzare le directory con nomi normali? – mtk
Sei sicuro di aver inserito uguali vasi in entrambe le directory? – Andremoniy
Gli utenti possono eseguire la mia applicazione da qualsiasi luogo sul proprio file system. Le directory con punti esclamativi sono supportate da Windows. – Velth