2016-10-06 4 views
0

Ich baue ein Hilfsprogramm, das einem Bild Text hinzufügt. Das Bild befindet sich im selben Verzeichnis wie die JAR-Datei. Ich möchte nur die Datei in das Verzeichnis des JAR kopieren und doppelklicken Sie auf die JAR-Datei, und es sollte das Bild verarbeiten.javax.imagio.IIOException beim Versuch, eine Bilddatei aus einer ausführbaren JAR-Datei zu laden

Wenn ich den Code in Eclipse ausführen, funktioniert alles gut. (Bild ist im Stammordner des Projekts hier)

Aber wenn ich es in ein Gefäß (Image-Datei in demselben Verzeichnis) exportieren, bekomme ich folgende Fehlermeldung:

Exception in thread "main" javax.imageio.IIOException: Can't read input file! 

bei javax.imageio. ImageIO.read (Unknown Source) bei main.main (main.java:21)

Dies ist, wie der Code beginnt:

public static void main(String[] args) throws IOException { 
    BufferedImage background = ImageIO.read(new File("./bgimage.jpg")); 
    int fontSize=120; 

(Linie 19, 20 und 21)

Ich versuchte jede mögliche Variante des Dateinamens und suchte stundenlang nach dem Problem. Ich hoffe ihr könnt mir helfen.

+0

Hope this [link] (https://www.dyclassroom.com/image-processing-project/ how-to-read-und-write-image-file-in-java) hilft – Karthik

+0

Der Fehler tritt sogar auf, wenn ich einen absoluten Dateipfad wie "D \\ folder \\ image.png" verwende, wie gesagt, es funktioniert immer in Eclipse, aber in der .jar-Datei ist es nicht – Schescher

+0

können Sie genaue Zeilennummer aus der Fehlermeldung, wo Sie den Fehler und Code bekommen? Hier im obigen Kommentar fehlt Doppelpunkt im Pfad "D: \\ Ordner \\ image.png" – Karthik

Antwort

1

Versuchen Sie herauszufinden, was Ihre Arbeits dir den absoluten Pfad der Datei ist und drucken:

System.out.println("Working dir: " + System.getProperty("user.dir")); 

File file = new File("./bgimage.jpg"); 
System.out.println("File: " + file.getCanonicalPath()); 
Verwandte Themen