Я пытаюсь извлечь флэш-накопитель USB на Mac из программы Java.Я попытался umount и diskutil извлечь, и ни один не работает.Я получаю код выхода 1 из обоих.Если я физически вытаскиваю диск, Mac OS X выдает мне стандартное предупреждение.
Мой код:
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
Страницы руководстваукажите, что вы можете использовать смонтированный путь или путь к устройству в качестве аргумента для umount или diskutil eject.
Если я скопирую команду в терминал и запущу ее, то она отлично работает.Я подозреваю, что это что-то связанное со средой, но, как вы можете видеть, я не посылаю envp методу exec.
Что должен сделать программист, чтобы заставить работать eject / unmount?
Спасибо!