【问题标题】:How can I get volume id on Windows using Java?如何使用 Java 在 Windows 上获取卷 ID?
【发布时间】:2012-09-17 12:57:35
【问题描述】:

我正在开发一个 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 程序?

提前致谢。

【问题讨论】:

  • 我怀疑它是一个cmd 命令。试试cmd /c vol
  • 也许cmd /c vol 可能有用?
  • 就是这样!感谢您的快速响应! @PeterLawrey 将您的答案放在“stackoverflow-answer”中,所以我可以给您信用,因为您首先回答了。 =)

标签: java windows system system-information


【解决方案1】:

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

CMD /C VOL

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

sh -c "cd /path ; command > file"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-03
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多