Ich kann keine Schriftart aus einem S3-Eingabestream in JRE 8 laden. Ich habe kein Problem, wenn ein System mit JRE 7, JDK 7 oder sogar JDK 8 installiert ist.
%Vor%Der Fehler, den ich bekommen habe, ist
%Vor%Ich habe versucht, den Inputstream in eine temporäre Datei zu laden, aber das hilft nicht. Ich habe auch versucht, eine Schriftart direkt aus einer lokalen Datei zu laden, aber ich habe einen anderen Fehler beim Abrufen von Schriftart-Metadaten bekommen. Hier ist das Fehlerprotokoll.
%Vor%Das ist also kein Problem mit inputstream, sondern mit dem Laden der Schriftart selbst in JRE 8.
Dies scheint ein Fehler in JRE 8 Font zu sein.
Ich lade eine Schriftart, um eine Zeichenkette in einem Bild zu zeichnen. Mein Code wird in einem Docker-Container mit Bildern Java: 7-jre (ok), java: 7-jdk (ok), java: 8-jre (fehlgeschlagen), java: 8-jdk (ok).
Es stellt sich heraus, dass dies ein Problem mit der openjdk-8-jre-headless
Installation ist. Dies ist die Installation im Docker-Image für Java 8 JRE. Ich installiere einfach openjdk-8-jre
(ohne Kopflos) und das Problem verschwindet.
Wenn Sie sich das Fehlerprotokoll ansehen, erfordert das Laden der Schriftart awt X11, das in headless
version von JRE fehlt.