3
我試圖從Java程序彈出USB上的USB磁盤驅動器。我試過卸載和diskutil彈出,都沒有工作。我從兩個退出代碼都是1。如果我將硬盤拉出來,Mac OS X會給我提供標準警告。Mac從Java程序中彈出USB磁盤
我的代碼:
log.debug("going to eject targetRoot.getPath()=" + targetRoot.getPath());
String command = "diskutil eject " + targetRoot.getPath().replace(" ", "\\ ");
log.debug("about to run command=" + command);
int exitCode = Runtime.getRuntime().exec(command).waitFor();
log.debug("exitCode=" + exitCode);
輸出:
going to eject targetRoot.getPath()=/Volumes/NO NAME
about to run command=diskutil eject /Volumes/NO\ NAME
exitCode=1
手冊頁表明您可以使用安裝路徑或路徑設備作爲卸除或磁盤工具彈出的參數。
如果我將命令複製到終端並運行它,那麼它完美的工作。我懷疑它是與環境有關的東西,但正如你所看到的,我沒有發送envp到exec方法。
什麼是程序員必須做的彈出/卸載工作?
謝謝!
謝謝,就是這樣!我切換到使用字符串數組。我也不得不用「\」來取代空格。 – bmauter