我正在尝试从 Java 类运行一个简单的 ImageMagick 命令,因为我只需要运行几个我认为不使用 Im4Java 的命令,我可以直接使用 ProcessBuilder.start()。 我正在使用以下代码-
ProcessBuilder pb = new ProcessBuilder("convert","pic2.png","pic52.png");
pb.directory(new File("/user/gaurav_kl"));
pb.start();
但是我得到了错误 IOException - 无法运行程序“转换”(在目录“/user/gaurav_kl”中):错误=2,没有这样的文件或目录 可能是什么原因。 当我从终端运行相同的命令时,它可以在任何目录中正常工作,因为 IM 已添加到类路径中
最佳答案
ProcessBuilder 在搜索命令可执行文件时的行为取决于系统/jvm。虽然您可能期望它使用与底层 shell(即 BASH)相同的逻辑,但在 documentation 中并不能保证这一点。 .
根据您(和其他人)的经验,最好提供完整的命令路径。例如:
String IMGK_PATH="/usr/local/magick/bin";
ProcessBuilder pb = new ProcessBuilder(IMGK_PATH + "/convert","pic2.png","pic52.png");
pb.directory(new File("/user/gaurav_kl"));
pb.start();
关于java - 使用 ProcessBuilder 运行 ImageMagick 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10079098/