JavaプログラムからMac上でUSBサムドライブを取り出そうとしています。私はumountとdiskutil取り出しを試していてどちらも動作していません。私は両方から1の終了コードを取得します。物理的にドライブを引き出すと、Mac OS Xは私に標準的な警告を出します。Macプログラムから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
manページを使用すると、アンマウントまたはdiskutilイジェクトの引数としての装置に装着されたパスまたはパスを使用することができることを示しています。
端末にコマンドをコピーして実行すると、完全に動作します。私はそれが環境に関係するものだと思っていますが、あなたが見ることができるように私はexecメソッドにenvpを送信していません。
イジェクト/アンマウント作業を行うにはどうすればよいですか?
ありがとうございます!
ありがとうございました!私は文字列の配列を使用するように切り替えました。私はまた、スペースの置換を "\"で取り除かなければなりませんでした。 – bmauter