如何在Windows上使用Java获取卷ID?

时间:2012-09-17 12:57:36

标签: java windows system system-information

我正在开发一个Java桌面应用程序来访问信息,格式,更改标签和卷ID。此应用程序的目标是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

是否有可用于获取volumeid信息的Java API或Windows程序?

提前致谢。

1 个答案:

答案 0 :(得分:1)

一些命令内置于shell中。要运行这些命令,您需要运行shell以运行该命令。对于CMD,你需要像

这样的东西
CMD /C VOL

对于unix shell,你需要像

这样的东西
sh -c "cd /path ; command > file"