5

我正在尝试执行其父文件夹存在于路径上的程序(具体而言,从 ImageMagick 转换)。因此,当我从命令行运行时convert,它会运行命令。但是,以下失败:

String command = "convert"
CommandLine commandLine = CommandLine.parse(command);
commandLine.addArgument(...)
...
int exitValue = executor.execute(commandLine);

如果我指定转换可执行文件 () 的完整路径,C:\Program files\...则此代码有效。如果我不这样做,我会得到一个带有 exit value 的异常4

如何让 commons-exec 识别系统路径?

4

1 回答 1

7

我之前遇到过这样的问题,系统设置 PATH 不是 java 进程所看到的。作为调试的一种方法,您可以使用以下命令打印出 java 进程视为路径 env 变量的内容:

EnvironmentUtils.getProcEnvironment();

这会给你一个地图,你可以看看Java是否可以看到路径变量。如果它不存在,那么下一步就是找出你看不到它的原因。

如果它在那里,我会尝试运行你的 excutor.execute 命令,如下所示:

int exitValue = executor.execute(commandLine, EnvironmentUtils.getProcEnvironment());
于 2010-04-23T04:05:03.380 回答