Ich verwende Java 8 (speziell OpenJDK 8) für ein Projekt und ich muss ein Bild aus einer JPG-Datei lesen. Die Suche führte mich zu einigen ähnlichen Fragen (z. B. Read byte array into buffered image WITHOUT ImageIO und Is there a 100% Java alternative to ImageIO for reading JPEG files?), aber mein Problem ist anders und die Lösungen dort entsprechen nicht meinen Anforderungen.Workaround für ImageIO.read Fehler in OpenJDK 8?
Es stellt sich heraus, dass die Klasse JPEGImageReader
immer noch fehlt. (Siehe openjdk-8: Missing JPEGImageReader functions in libjavajpeg.so) Obwohl dieser Fehlerbericht für Debian ist, verwende ich Kubuntu 14.10 und es ist auch betroffen.
Basierend auf dem letzten Nachricht Bericht, scheint niemand zu diesem Zeitpunkt zu diesem Thema zu funktionieren ...
Der Code-Schnipsel, diesen Fehler zu reproduzieren ist:
// ...
BufferedImage img = null;
try {
img = ImageIO.read(new File(filename));
} catch (IOException e) {
throw new RuntimeException(e);
}
// ...
Der Weg zu dem Datei gültig ist und das funktioniert in der Regel, wenn ich Java verwenden 1.7, aber auf 1,8 ändert, verursacht die folgende excpetion auf ImageIO.read
Aufruf:
Caught UnsatisfiedLinkError: com.sun.imageio.plugins.jpeg.JPEGImageReader.initReaderIDs(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)
ich benötige Hilfe ein Arbeits rund um dieses Problem unter Vermeidung:
- zusätzliche Abhängigkeiten zu anderen/externen Bibliotheken;
- Zurück zu Java 1.7;
- muss aus der Quelle neu erstellt werden;
- Oracle-eigene Implementierung der JDK
Arbeits Code-Schnipsel geschätzt.
EDIT-1: Punkt # 4 zur Liste hinzugefügt.
EDIT-2: Ein Teil des Hauptabschnitts rewordiert und eine weitere Referenz hinzugefügt.
Ist die Verwendung des Oracle JDK eine Möglichkeit? Wenn ja, gibt es einige Informationen hier auf einem ppa, die Sie verwenden können: http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html – msandiford
ich bin Versuchen, sich von Oracles proprietärer Implementierung fernzuhalten, wenn irgend möglich. Ich werde die Frage aktualisieren, um dies zu erwähnen. – ray
Also [ImageIO.getImageReadersByFormatName ("jpeg")] (http://docs.oracle.com/javase/8/docs/api/javax/imageio/ImageIO.html#getImageReadersByFormatName-java.lang.String-) ergibt keinen JPEG-Reader? –