【问题标题】:Using ProcessBuilder to run ImageMagick command使用 ProcessBuilder 运行 ImageMagick 命令
【发布时间】:2012-04-09 20:06:24
【问题描述】:

我正在尝试从 Java 类运行一个简单的 ImageMagick 命令,因为我只需要运行一些我认为而不是使用 Im4Java 的命令,我可以直接使用 ProcessBuilder.start()。 我正在使用以下代码 -

ProcessBuilder pb = new ProcessBuilder("convert","pic2.png","pic52.png");
          pb.directory(new File("/user/gaurav_kl"));
         pb.start();

但我得到了错误 IOException - 无法运行程序“convert”(在目录“/user/gaurav_kl”中):错误=2,没有这样的文件或目录 可能是什么原因。 当我从终端运行相同的命令时,它可以从任何 Dir 正常工作,因为 IM 已添加到类路径

【问题讨论】:

  • imagemagic 有大约 100 个关注者,processbuilder 有大约 0 个,你带着这个问题在雷达下飞行

标签: java imagemagick processbuilder


【解决方案1】:

搜索可执行命令时 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();

【讨论】:

  • 谢谢!在我找到您的解决方案之前搜索了几天
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-27
  • 1970-01-01
  • 2018-05-01
相关资源
最近更新 更多