java - ImageMagick在Spring boot的打包WAR中找不到convert.exe的路径

标签 java spring-boot imagemagick im4java

我正在使用 ImageMagick 裁剪图像文件。我正在部署带有 ImageMagick 的打包 WAR。 ProcessStarted类的searchForCmd()函数无法从WEB-INF/classes中找到ImageMagick的文件,即

file:/D:/Project/build/libs/proj-0.0.1-SNAPSHOT.war!/WEB-INF/classes!/ImageMagick-6.6.1-5

如何在压缩 war 中访问convert.exe。

下面是堆栈跟踪。

 org.im4java.core.CommandException: java.io.FileNotFoundException: convert
    at org.im4java.core.ImageCommand.run(ImageCommand.java:219)
    at com.os.util.helper.ImageCropHelper.cropImageByImageMagic(ImageCropHelper.java:316)
    at com.os.util.helper.ImageCropHelper.cropImage(ImageCropHelper.java:375)
    at com.os.action.UserAction.mntnUserAvatar(UserAction.java:2566)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:899)
    at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1544)
    at ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:68)
    at com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethodWithDebugInfo(XWorkMethodAccessor.java:96)
    at com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethod(XWorkMethodAccessor.java:88)
    at ognl.OgnlRuntime.callMethod(OgnlRuntime.java:1620)
    at ognl.ASTMethod.getValueBody(ASTMethod.java:91)
    at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
    at ognl.SimpleNode.getValue(SimpleNode.java:258)
    at ognl.Ognl.getValue(Ognl.java:470)
    at ognl.Ognl.getValue(Ognl.java:434)

最佳答案

WAR 通常不包含 EXE。如果您对外部应用程序有依赖关系,则它们必须安装在部署 WAR 的服务器(或容器中)。还要考虑到您的 Springboot 通常可以在 Linux 或 Windows 服务器上运行,并且 IM 可执行文件会有所不同...

关于java - ImageMagick在Spring boot的打包WAR中找不到convert.exe的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50115003/

相关文章:

java - 如何在java中准备带有可选子句的SQL查询?

java - Axon Framework - 我如何回滚 Saga 进程

java - 在 Spring boot 入口点中使用 Api 端点会在 Junit 测试用例中出现错误

svg - 自动将 SVG 转换为 Android 可用的 PNG

javascript - node.js 将 imagemagick 的输出上传到 AWS S3

java - 如何销毁一个线程?

java - 使用 Repast Simphony 2.0 Eclipse 在关闭透视图和关闭应用程序后不再打开

java - Java中循环内部和外部定义对象的不同

java - JPA更新父子

java - 类似于ImageMagick的Java图像编辑库