我需要从Java调用外部程序,例如ImageMagick的convert
。除非我在实际命令之前放置cmd /c
,否则它无法在Windows上运行。
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
,我会遇到与此处描述的非常类似的问题:running imagemagick convert (console application) from python - 存在一个本机Windows convert.exe
,而不是ImageMagick的convert.exe
。似乎PATH
未被子进程的环境挑选。
我已经仔细检查过我的系统PATH
在C:\Windows\system32
之前有ImageMagick目录。当我在Windows命令行中输入命令时,命令本身运行得非常好。
答案 0 :(得分:1)
您可以查看操作系统。
private static String OS = System.getProperty("os.name")