1

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

一些命令内置在 shell 中。要运行这些命令,您需要运行 shell 来运行命令。对于 CMD 你需要类似的东西

CMD /C VOL

对于 unix shell,你需要类似的东西

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