Как узнать серийный номер диска в java?

Мне нужно узнать серийный номер диска используя java, как можно это сделать? В python можно использовать pywin32, есть ли что-то похожее для java?


Ответы (2 шт):

Автор решения: Nowhere Man

Для Windows можно вызвать команду wmic: wmic diskdrive get serialnumber:

String sc = "cmd /c" + "wmic diskdrive get serialnumber";

Process p = Runtime.getRuntime().exec(sc);
p.waitFor();

StringBuilder sb = new StringBuilder();

try (BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()))) {
    String line;

    while ((line = reader.readLine()) != null) {
        sb.append(line);
    } 
}

System.out.println("HDD Serial number: " + sb.substring(sb.toString().lastIndexOf("r") + 1).trim());
→ Ссылка
Автор решения: siarhei987

С помощью библиотеки OSHI (Operating System and Hardware Information library for Java) серийные номера можно вывести так:

SystemInfo info = new SystemInfo();
info.getHardware().getDiskStores()
        .stream()
        .map(HWDiskStore::getSerial)
        .forEach(System.out::println);
→ Ссылка