[英]Cross-platform way to run external process from java?
我需要從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
我遇到了如下所述的非常類似的問題: 從python運行imagemagick convert(控制台應用程序) - 存在一個本機Windows convert.exe
被調用而不是ImageMagick的convert.exe
。 似乎PATH
不被子進程的環境挑選。
我已經仔細檢查過我的系統PATH
在C:\\Windows\\system32
之前有ImageMagick目錄。 當我在Windows命令行中輸入命令時,命令本身也可以正常運行。
你可以查看操作系統。
private static String OS = System.getProperty("os.name")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.