从 java 到 运行 外部进程的跨平台方式?
Cross-platform way to run external process from java?
我需要从 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
以便我的代码在 OS 而不是 Windows 上运行?
没有 cmd /c
我遇到了与这里描述的非常相似的问题:running imagemagick convert (console application) from python - 存在一个本地 Windows convert.exe
被调用而不是 ImageMagick 的 convert.exe
。似乎 PATH
没有被子进程的环境选中。
我仔细检查了我的系统 PATH
在 C:\Windows\system32
之前是否有 ImageMagick 目录。当我在 Windows 命令行中输入命令时,命令本身也运行得很好。
您可以查看OS。
private static String OS = System.getProperty("os.name")
我需要从 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
以便我的代码在 OS 而不是 Windows 上运行?
没有 cmd /c
我遇到了与这里描述的非常相似的问题:running imagemagick convert (console application) from python - 存在一个本地 Windows convert.exe
被调用而不是 ImageMagick 的 convert.exe
。似乎 PATH
没有被子进程的环境选中。
我仔细检查了我的系统 PATH
在 C:\Windows\system32
之前是否有 ImageMagick 目录。当我在 Windows 命令行中输入命令时,命令本身也运行得很好。
您可以查看OS。
private static String OS = System.getProperty("os.name")