簡體   English   中英

從java運行外部進程的跨平台方式?

[英]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不被子進程的環境挑選。

我已經仔細檢查過我的系統PATHC:\\Windows\\system32之前有ImageMagick目錄。 當我在Windows命令行中輸入命令時,命令本身也可以正常運行。

你可以查看操作系統。

private static String OS = System.getProperty("os.name")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM