我正在开发一个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程序?
提前致谢。
答案 0 :(得分:1)
一些命令内置于shell中。要运行这些命令,您需要运行shell以运行该命令。对于CMD,你需要像
这样的东西CMD /C VOL
对于unix shell,你需要像
这样的东西sh -c "cd /path ; command > file"