我正在使用ImageMagick的convert工具在我的Mac OS X上运行的Java程序中转换图像。
我使用了以下代码,该代码是我从这里改编而来的。
然而,当我这样做时,我得到了一个133的退出状态和下面的错误消息。我认为这与权限有关,因为当我从终端运行相同的命令时,它可以正常工作。 错误消息:
public static void convertToJPG(String originalFile, String newFile) throws Exception {
executeCommand("/usr/local/ImageMagick-6.6.7/bin/convert", originalFile, newFile);
}
private static void executeCommand(String... command) throws Exception {
ProcessBuilder pb = new ProcessBuilder(command);
pb.redirectErrorStream(true);
Process p = pb.start();
int exitStatus = p.waitFor();
System.out.println(exitStatus);
if(exitStatus != 0)
throw new Exception("Error converting image.");
}
然而,当我这样做时,我得到了一个133的退出状态和下面的错误消息。我认为这与权限有关,因为当我从终端运行相同的命令时,它可以正常工作。 错误消息:
dyld: Library not loaded: /ImageMagick-6.6.7/lib/libMagickCore.4.dylib
Referenced from: /usr/local/ImageMagick-6.6.7/bin/convert
Reason: image not found
编辑:好的,事实证明我之前遇到的错误是因为Java无法读取DYLD_LIBRARY_PATH
环境变量。所以我重新启动了Eclipse,一切正常了。