1

情報にアクセスし、フォーマットし、ラベルとボリューム ID を変更するための Java デスクトップ アプリケーションを開発しています。このアプリのターゲットは、主に Windows XP または Windows 7 を使用する Windows ユーザーです。

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

volumeid 情報を取得するために使用できる Java API または Windows プログラムはありますか?

前もって感謝します。

4

1 に答える 1

1

一部のコマンドはシェルに組み込まれています。これらのコマンドを実行するには、シェルを実行してコマンドを実行する必要があります。CMDの場合、次のようなものが必要です

CMD /C VOL

UNIXシェルの場合、次のようなものが必要です

sh -c "cd /path ; command > file"
于 2012-09-17T13:21:59.730 に答える