我需要从Java中调用外部程序,例如ImageMagick的
如何避免使用
不使用
我已经仔细检查了我的系统
convert
。在Windows上,除非我在实际命令之前加上cmd /c
,否则它将无法运行。String source = "test.jpg";
String result = "test-thumbnail.jpg";
ProcessBuilder builder = new ProcessBuilder().command("cmd", "/c", "convert", source, "-thumbnail", "295x", result);
Process process = builder.start();
如何避免使用
cmd /c
使我的代码能够在非Windows操作系统上运行?不使用
cmd /c
会遇到类似于这里描述的问题:从Python运行ImageMagick convert(控制台应用程序) - 即存在本地的Windows convert.exe
被调用,而不是ImageMagick的convert.exe
。似乎子进程的环境没有选择PATH
。我已经仔细检查了我的系统
PATH
,确保ImageMagick目录位于C:\Windows\system32
之前。当我在Windows命令行中输入该命令时,它可以完美运行。
convert.exe
重命名为msconvert.exe
。 - Mark Setchell