当前位置: 首页 > news >正文

如何解决docker运行Java程序导出Excel中文报错的问题?

前言

使用openjdk:17-jdk-slim基础镜像运行Java程序,导出Excel的时候报错。

导出时错误内容如下

java.lang.UnsatisfiedLinkError: /usr/local/openjdk-17/lib/libfontmanager.so: libfreetype.so.6: cannot open shared object file: No such file or directory

java.lang.InternalError: java.lang.reflect.InvocationTargetException

前期准备,需要安装好docker。

一、进入程序运行的容器

1、进入容器,执行命令如下。

# project替换为容器id或容器名称
docker exec -ti project bash

二、配置apt加速

1、进入apt配置路径,执行命令如下。

cd /etc/apt/

2、备份原来的配置,以备失败后可以回滚,执行命令如下。

cp sources.list sources.list.bak

3、写入阿里云镜像配置,执行命令如下。

# 因为openjdk:17-jdk-slim未安装vim编辑器,所以使用echo直接写入替代
echo "deb http://mirrors.aliyun.com/debian/ bullseye main contrib non-free" > sources.list && echo "deb http://mirrors.aliyun.com/debian/ bullseye-updates main contrib non-free" >> sources.list && echo "deb http://mirrors.aliyun.com/debian-security bullseye-security main contrib non-free" >> sources.list

4、验证更新后的镜像,执行命令如下。

apt-get update

执行效果如下图所示。

5、至此,配置apt加速已完成。

三、安装依赖

1、执行命令如下。

apt-get update && apt-get install -y libfreetype6 libfontconfig1 fonts-dejavu fonts-dejavu-core

2、至此,导出Excel的本地相关依赖以及字体已安装完成,接下来就是测试验证呢。

总结

因为使用openjdk:17-jdk-slim基础镜像运行Java程序,导出Excel的时候报错,需要安装本地相关依赖以及字体,但是过程中又遇到更新依赖不成功的问题,需要给apt加速,总结步骤如下。

1、进入程序容器。

2、配置apt加速。

3、安装依赖。

http://www.dtcms.com/a/157855.html

相关文章:

  • [官方IP] Shift RAM
  • 五年经验Java开发如何破局创业
  • ShaderToy学习笔记 01.基础知识
  • 【WSL】wsl2出现Exec format error的解决办法
  • tensor 内部存储结构
  • FastAPI 零基础入门指南:10 分钟搭建高性能 API
  • 365打卡第R3周: RNN-心脏病预测
  • YOLOv5修改检测框颜色,粗细,标签大小,标签名称
  • AI编程案例拆解|基于机器学习XX评分系统-后端篇
  • 深入理解算力:从普通电脑到宏观计算世界
  • 【Docker项目实战】使用Docker部署Caddy+vaultwarden密码管理工具(详细教程)
  • 如何在项目中使用双token机制?
  • 代码随想录算法训练营Day36
  • MyBatis XML 配置完整示例(含所有核心配置项)
  • 单片机-89C51部分:4、固件烧录
  • MAVLink协议:原理、应用与实践
  • Pytorch(无CPU搭建)+Jupyter
  • 代码随想录算法训练营第二十八天
  • Pygame入门:零基础打造你的第一个游戏窗口
  • 二、UI自动化测试02--元素定位方法
  • Leetcode刷题 由浅入深之哈希法——202. 快乐数
  • Adruino:传感器及步进电机
  • 我们分析前端生活。
  • 驱动开发硬核特训 · Day 21(上篇加强版):深入理解子系统机制与实战初探
  • 微服务架构下 MySQL 大表分库分表方案
  • 【Linux网络】构建与优化HTTP请求处理 - HttpRequest从理解到实现
  • std::mutex底层实现原理
  • Spring Boot集成RocketMQ
  • Win7 SSL证书问题
  • 【C++11】列表初始化