java - ImageMagick 命令无法在 OSX 中的 JAVA 代码中运行

标签 java macos command-line terminal imagemagick

ImageMagick 命令无法在 JAVA 代码中运行。

Runtime.getRuntime().exec("compare /Users/labuser/Downloads/test.jpg /Users/labuser/Downloads/test1.jpg /Users/labuser/Downloads/differnce.jpg");

异常(exception):

java.io.IOException: Cannot run program "compare": error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)

当我从终端尝试时,它工作正常并在指定路径中生成输出文件。 我已经验证了 echo $PATH 并将其设置为

PATH=/opt/local/bin:/opt/local/sbin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/ImageMagick/bin

有人请建议我是否需要添加一些东西来从终端运行这些命令? 对于其他命令,它在终端上工作正常,仅在使用 imageMagick 命令时出现错误

最佳答案

谢谢@垃圾神

它在指定 ImageBrick API 的完整路径时工作,例如

    Runtime.getRuntime().exec("/opt/ImageMagick/bin/compare /Users/labuser/Downloads/test.jpg /Users/labuser/Downloads/test1.jpg /Users/labuser/Downloads/diff.jpg");

关于java - ImageMagick 命令无法在 OSX 中的 JAVA 代码中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23652708/

相关文章:

java - 防止双重打开 JavaFX 8 ContextMenu

java - 如何在Netbeans中创建Java项目,而不使用默认的Maven?

objective-c - 如何打印字体的字符集?

ios - iOS 5 中支持的 AV 媒体和容器格式

c - 相同条件下的性能测试

java - JPasswordField.getPassword() 的安全原因是什么?

java - 如何仅重新加载部分代码 - Java

powershell - 如何从 Mediainfo 中获取特定信息

c# - 如何 : Execute command line in C#, 获取 STD OUT 结果

linux - zsh 中的退格键无法以非常奇怪的方式工作