Как я могу получить идентификатор тома в Windows, используя Java?

Я разрабатываю настольное Java-приложение для доступа к информации, формату, смене меток и идентификатору тома. Цель этого приложения - пользователи Windows, которые будут использовать в основном Windows XP или Windows 7.

Я получаю основную информацию, используя java File и FileSystemView; и я использую Runtime.getRuntime().exec() для выполнения внешних приложений Windows для выполнения других задач.

Я попытался использовать 'vol' и 'dir', чтобы получить информацию о volumeId, но я получаю следующую ошибку:

Starting: vol E:
java.io.IOException: Cannot run program "vol": CreateProcess error=2, O sistema não pode  encontrar o arquivo especificado
        at java.lang.ProcessBuilder.start(Unknown Source)
        at java.lang.Runtime.exec(Unknown Source)
        at java.lang.Runtime.exec(Unknown Source)
        at java.lang.Runtime.exec(Unknown Source)
        at app.CommandRunnerWithReturn.run(CommandRunnerWithReturn.java:24)
Caused by: java.io.IOException: CreateProcess error=2, O sistema não pode encontrar o arquivo especificado
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.<init>(Unknown Source)
        at java.lang.ProcessImpl.start(Unknown Source)
        ... 5 more

Существует ли программа Java API или Windows, которую я могу использовать для получения объемной информации?

Заранее спасибо.

1 ответ

Решение

Некоторые команды встроены в оболочку. Для запуска этих команд вам нужно запустить оболочку для запуска команды. Для CMD вам нужно что-то вроде

CMD /C VOL

для Unix Shell вам нужно что-то вроде

sh -c "cd /path ; command > file"
Другие вопросы по тегам