【问题标题】:convert command not found when shell script is run through java通过java运行shell脚本时找不到转换命令
【发布时间】:2018-10-02 07:23:56
【问题描述】:

我有一个执行 OCR 的 shell 脚本。它有一个图像魔法转换命令。直接运行时shell脚本运行良好,但是通过java程序执行shell脚本时,找不到转换命令。为了测试目的,我已经简化了 shell 脚本。这是我的 shell 脚本 -

#!/bin/bash

LOGFILE=/opt/apache-tomcat-9.0.12/bin/test14.log

(
 FILE_NAME=$1;
 convert $FILE_NAME -density 6000 -resize "2000x" DENSE_$FILE_NAME;
) >& $LOGFILE

这就是在 test14 日志文件中打印的内容 -

line 7: convert: command not found

请让我知道我做错了什么。

【问题讨论】:

  • 如果您的输入 $FILE_NAME 是指 PDF 文件或其他一些矢量格式,那么您必须在阅读 PDF 之前设置密度。

标签: shell imagemagick-convert


【解决方案1】:

这意味着您在终端中使用的登录 shell 设置了一个包含 ImageMagick 的 PATH,而您的 Java 程序设置了一个不包含的 PATH

所以,启动终端并运行:

which convert

你会得到类似的东西:

/usr/local/bin/convert

这意味着convert/usr/local/bin 中。所以现在编辑你的 shell 脚本并将其添加到你 PATH:

#!/bin/bash
export PATH=/usr/local/bin:$PATH

LOGFILE=/opt/apache-tomcat-9.0.12/bin/test14.log

(
 FILE_NAME=$1;
 convert $FILE_NAME -density 6000 -resize "2000x" DENSE_$FILE_NAME;
) >& $LOGFILE

【讨论】:

  • 非常感谢您的详细回答。事实证明,我在我的 bash_profile 中设置了这个路径。我只需要使用源重新加载它。
猜你喜欢
  • 1970-01-01
  • 2022-08-17
  • 1970-01-01
  • 2021-03-20
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 2016-09-27
  • 2014-04-03
相关资源
最近更新 更多