Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Узнать серийный номер винчестера


Автор: VampiRUS 16.4.2008, 09:01
Можно ли узнать серийный номер жёсткого диска, или какие либо другие железные параметры, не зависимо от ОС.

Автор: SID_M 16.4.2008, 10:32
Независимо от ОС ИМХО никак. JVM этого делать не умеет. Нужно использовать Native функции.

Автор: Key 16.4.2008, 12:41
Можно узнать тип ОС от самой JVM, а дальше выбирать в зависимости от типа ОС что делать.
Я шас как раз в этом разбираюсь. А вот с железом работать уже труднее, тут либо JNI либо искать под каждую ОС стандартные утилиты которые выводят инфу о системе и парсить вывод. Я выбрал второй вариант.

Автор: unkis 16.4.2008, 14:22
Key, 
Было бы не плохо если бы ты потом поделился кодом, если все получится, так как вопрос этот поднимается не однократно.

Автор: barin_Student 11.3.2009, 11:30
"Как узнать серийный номер винчестера?" , вот и у меня есть такой вопрос , есть сишный код , да я вот в JNI -ноль, хотелось бы услышать еще ваших ответов на эту тему , и  от помощи я не откажусь. smile 

Автор: barin_Student 11.3.2009, 11:53
Код , который узнает серийник логического жесткого диска нашел, требуется именно физического жесткого диска серийник узнать средствами JAVA. smile

Добавлено через 3 минуты и 8 секунд
Как вот этот код с JAva связать :
Код

#include <stdio.h> 
#include <fcntl.h> 
#include <linux/hdreg.h> 

int main() 
{ 
    struct hd_driveid hd; 
    int ide; 
    ide=open("/dev/hda",O_RDONLY); 
    ioctl(ide,HDIO_GET_IDENTITY,&hd); 
    printf("Serial number - %s\n",hd.serial_no); 
    return 1; 
}

ПС: мне в ОС *nix, так что не переживайте  smile 

Автор: LSD 11.3.2009, 12:23
Цитата(barin_Student @  11.3.2009,  11:53 Найти цитируемый пост)
Как вот этот код с JAva связать :

Самое простое это запустить программу, через Runtime.exec() и парсить вывод.

Автор: barin_Student 11.3.2009, 12:26
счас пробую 
hdparm -i /dev/hdb

Автор: barin_Student 11.3.2009, 12:50
А как читать входящий поток? smile Что то я глуплю...
System.in - не хочет пахать

Добавлено через 7 минут и 17 секунд
Код

java.util.Scanner sc = new java.util.Scanner(System.in);
Runtime.getRuntime().exec(mount --h);
while(true)
{
     System.out.println(sc.next());
}

Выводит только то что вводиться с клавиатуры , а то что выводится на команду обычно в кончоль не выводит!

Автор: LSD 11.3.2009, 12:58
Process.getInputStream()

Автор: barin_Student 11.3.2009, 13:09
non-static method getInputStream() cannot be referenced from a static context 
smile -ничаго не сказанно. smile  smile

Добавлено через 7 минут и 59 секунд
Все нашел пример спс smile 

Автор: Maksym 13.3.2009, 12:24
http://forum.vingrad.ru/index.php?showtopic=170563&view=findpost&p=1243306

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)