上一节我们已经本地安装了GM这个工具:手把手教你本地安装GraphicsMagick,本章看看如何将这个工具集成到项目中进行开发。
以什么方式集成?
JNI / 命令行(im4java)
在im4java官网中提到:
翻译过来就是: 从Java内部使用JNI运行本机代码始终会带来其他风险,对于长时间运行的进程(通常是Web应用程序服务器)尤其危险。内存损坏或分段错误(可能由故意操纵的图像触发)可能会使整个服务器瘫痪。
所以我们选择使用命令行的方式进行调用。
项目集成
1、将gm命令行工具引入到项目中
在SpringBoot集成Linux可执行命令的时候,我们将可执行文件放在了项目的resource目录下:
这里需要有一步操作就是将文件复制到宿主机:
private void initGM() throws Exception {
String osName = System.getProperty("os.name").toLowerCase();
log.info("os name: {}", osName);
String gmPath;
if (osName.contains("mac")) {
gmPath = "gm/mac/gm";
} else if (osName.contains("linux")) {
// 初始化容器的环境
initPodEnv();
gmPath =