OpenJDK Excel in Docker kann java.lang.NullPointerException bei sun.awt.FontConfiguration.getVersion nicht exportieren
1. Hintergrundbeschreibung:
Die jdk1.8-Version wird lokal verwendet und die Funktion kann normal verwendet werden. Bei der Bereitstellung in der Linux-Umgebung (openJDK1.8) über das Docker-Paket-Image kann Excel nicht exportiert werden und die Initialisierung wird gemeldet. Die Nullzeiger-Ausnahme ist wie folgt berichtet:
2. Grund:
Openjdk vereinfacht einige Funktionen im Vergleich zu jdk1.8 und ist daher kleiner, wenn es mit Docker gepackt wird. Der Initialisierungsfehler beim Excel-Export liegt daran, dass die Komponente „fontconfig“ vereinfacht wurde.
3. Lösung:
Das Problem kann gelöst werden, indem die Komponente „fontconfig“ heruntergeladen wird, wenn Docker das Bild packt
Der erste Schritt : Laden Sie die Fontconfig-Komponente des Linux Centos-Systems herunter
yum install fontconfig
Schritt 2 : Fügen Sie beim Packen des Bildes den Download-Befehl hinzu
RUN apk add --update font-adobe-100dpi ttf-dejavu fontconfig
Der Screenshot unten:
Beim Packen des Bildes wird das folgende Protokoll gedruckt (der Download kann langsam sein):
4. Starten Sie dann Docker neu
docker restart 容器ID或容器名
5. Beim Packen wurde festgestellt, dass der Download sehr langsam war. Die Lösung: Wechseln Sie zum Ali-Spiegel
RUN echo -e 'https://mirrors.aliyun.com/alpine/v3.6/main/\nhttps://mirrors.aliyun.com/alpine/v3.6/community/' > /etc/apk/repositories \
&& apk update \
&& apk upgrade \
&& apk --no-cache add ttf-dejavu fontconfig
Die endgültige Konfiguration ist wie folgt: