我正在使用 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/