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

Рейтинг: 2Ответов: 2Опубликовано: 06.03.2023

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

Ответы

▲ 4Принят

Для 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());
▲ 2

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

SystemInfo info = new SystemInfo();
info.getHardware().getDiskStores()
        .stream()
        .map(HWDiskStore::getSerial)
        .forEach(System.out::println);