Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получить системную информацию, Ram, Installed software,Launched modules 
:(
    Опции темы
Griphon
Дата 27.3.2009, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 31.10.2008
Где: Киев

Репутация: 1
Всего: 1



В Windows есть утилита msinfo32.exe, которая собирает всю системную информацию о ПК(RAM,software,hardware & etc.) в один удобный для просмотра xml файл.
Чтобы запустить ее :
Меню "Пуск"-> Выполнить-> команда : msinfo32.
Создаст файл *.nfo(если открыть через блокнот внутри структура xml ).
Можна ли создать что либо подобное посредством java. И  какие для этого нужны библиотеки.
На одном форуме порекомендовали jConfig: jConfig сайт , только я не разобрался как его применить к данной проблемме.

 smile  

Это сообщение отредактировал(а) Griphon - 27.3.2009, 20:40
PM MAIL   Вверх
AntonSaburov
Дата 27.3.2009, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Я тоже не очень понял причем тут jConfig.

По большому счету все эти штуки являются ОС-зависимыми.
А значит собирать можно тольок через системные вызовы. 
Отсюда приходим к использовани JNI как моста между 
Java-программой и специальными средствами конкретной ОС.

А чистой Java собрать такое вряз ли получится. Может быть
кое-что и можно, но не в такой полной форме.

Других вариантов я не знаю.

PM MAIL WWW ICQ   Вверх
Vasay
Дата 27.3.2009, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 11
Всего: 73



Посмотрите в сторону 

com.sun.management

Пример:
размер ОЗУ
Код


package getmem;

import sun.management.*;

public class Main {

    public static void main(String[] args) {
        // TODO code application logic here
        com.sun.management.OperatingSystemMXBean mxbean = (com.sun.management.OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
        System.out.println(mxbean.getTotalPhysicalMemorySize() + " Bytes ");

    }

}




--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
Vasay
Дата 27.3.2009, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 11
Всего: 73



Так же рекомендую ознакомится с исходниками jconsole (входит в jdk) - она умеет собирать много информации о системе.



--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
Griphon
Дата 28.3.2009, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 31.10.2008
Где: Киев

Репутация: 1
Всего: 1



я пишу для Windows.
Узнать имя и версию  операционной системы, а также архитектуру процессора  можно :

i
Код

mport sun.management.*;
public class Main {
    public static void main(String[] args) {
OperatingSystemMXBean osMXB= (java.lang.management.OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
     System.out.println("Processor:"+osMXB.getArch());
     System.out.println("Operating System: "+ osMXB.getName()+" version: "+osMXB.getVersion());
    }
}


Это сообщение отредактировал(а) Griphon - 28.3.2009, 19:22
PM MAIL   Вверх
Griphon
Дата 17.4.2009, 03:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 31.10.2008
Где: Киев

Репутация: 1
Всего: 1



Для своих целей перепробовал много методов. Открыл очень интересные возможности, в частности нашел примеры работ с msoffice : 

Создание и редактирование *.doc файлов

работа с Excel

пример работы с visio(а также многое другое) в  архиве. Все библиотеки нужные для создания подобных приложений присоеденины.

Те системные рапорты ради которых я создал данную тему создаются при помощи утилиты msinfo32.exe :

C:\WINDOWS\system32\dllcache\msinfo32.exe

Недавно просматривал инфу по  Delphi и  наткнулся на ф-цию

Код

WinExec('C:\WINDOWS\system32\dllcache\msinfo32.exe /nfo Sys.nfo', SW_HIDE);
 

в данном примере она создает Sys.nfo  в корневом каталоге проекта.


Существуют ли подобные методы в Java?

 smile 


Это сообщение отредактировал(а) Griphon - 18.4.2009, 00:51

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  jacob_1.14.3.zip 782,21 Kb
PM MAIL   Вверх
Maksym
Дата 17.4.2009, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



Griphon
Еще так можно.

Добавлено через 1 минуту и 40 секунд
см. пятый пост в теме -- там пример
PM MAIL   Вверх
Griphon
Дата 18.4.2009, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 31.10.2008
Где: Киев

Репутация: 1
Всего: 1



Я хочу получить полную информацию, а не собирать ее по крупицам.

Вот  кстати код позволяющий при помощи стандартных средств java получить инфу о дисках :


Код

import java.io.*; 

import javax.swing.filechooser.*; 

 

public class DriveTypeInfo 



    public static void main(String[] args) 

    { 

        System.out.println("File system roots returned by FileSystemView.getFileSystemView():"); 

        FileSystemView fsv = FileSystemView.getFileSystemView(); 

        File[] roots = fsv.getRoots(); 

        for (int i = 0; i < roots.length; i++) 

        { 

            System.out.println("Root: " + roots[i]); 

        } 

 

        System.out.println("Home directory: " + fsv.getHomeDirectory()); 

 

        System.out.println("File system roots returned by File.listRoots():"); 

        File[] f = File.listRoots(); 

        for (int i = 0; i < f.length; i++) 

        { 

            System.out.println("Drive: " + f[i]); 

            System.out.println("Display name: " + fsv.getSystemDisplayName(f[i])); 

            System.out.println("Is drive: " + fsv.isDrive(f[i])); 

            System.out.println("Is floppy: " + fsv.isFloppyDrive(f[i])); 

            System.out.println("Readable: " + f[i].canRead()); 

            System.out.println("Writable: " + f[i].canWrite()); 

            System.out.println("Total space: " + f[i].getTotalSpace()); 

            System.out.println("Usable space: " + f[i].getUsableSpace()); 

        } 

    } 

}  



 c сайта Getting file system details in java

Для своих целей я испоьзую класс Runtime :

Код

Process Info= Runtime.getRuntime().exec("C:\\Program Files\\Common Files\\Microsoft Shared\\MSInfo\\msinfo32.exe");


Но в  параметрах метода exec,(насколько я понял) нет параметра позволяющего сохранить по указанному пути, в читабельном виде

Это сообщение отредактировал(а) Griphon - 19.4.2009, 16:16
PM MAIL   Вверх
Griphon
Дата 25.4.2009, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 31.10.2008
Где: Киев

Репутация: 1
Всего: 1



В Windows список установленного ПО можно получить из следующего ключа реестра :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall

О том как создать,удалить, прочитать или записать значение в ключи реестра можна прочитать здесь: 
Read/Write the registry
PM MAIL   Вверх
Griphon
Дата 4.5.2009, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 31.10.2008
Где: Киев

Репутация: 1
Всего: 1



О том как программно мониторить запущенные процессы читать тут (для Windows и Linux)

В тексте упоминается библиотека "silib"- присодинена в виде архива вместе с src . Также ее можна скачать отсюда   

Это сообщение отредактировал(а) Griphon - 4.5.2009, 16:47

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  01_qa_1108_cpu.zip 31,41 Kb
PM MAIL   Вверх
Griphon
Дата 6.5.2009, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 31.10.2008
Где: Киев

Репутация: 1
Всего: 1



Получить размер файла подкачки можна так

Код

import sun.management.*;
public class Main {
    public static void main(String[] args) {
        // TODO code application logic here
        com.sun.management.OperatingSystemMXBean mxbean = (com.sun.management.OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
        System.out.println(mxbean.getTotalSwapSpaceSize()  + " Bytes ");
    }
}

 имя хоста можно получить так :
Код

try {
java.net.InetAddress localMachine = java.net.InetAddress.getLocalHost();
System.out.println("Hostname of local machine: " + localMachine.getHostName());
}
catch (java.net.UnknownHostException e) { 
}


Ip адрес получить можно так :

Код

InetAddress localHost = InetAddress.getLocalHost();

System.out.println(localHost.getHostAddress()); 




Это сообщение отредактировал(а) Griphon - 6.5.2009, 21:36
PM MAIL   Вверх
Griphon
Дата 7.5.2009, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 31.10.2008
Где: Киев

Репутация: 1
Всего: 1



О том как получить инфу о процессоре такую как :тактовая частота в MHz, количество ядер, модель, Id производителя , cache  и т.д. читать здесь.
Начиная с версии 1.6  Mac адрес можно получить без использования JNI :

Mac (данная тема поднималась во время обсуждения защиты приложения  ) 

Если кто еще что не будет найдет, прошу выкладывать инфу(особенно для Linux(Unix)).
PM MAIL   Вверх
barin_Student
Дата 12.5.2009, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 488
Регистрация: 10.8.2007
Где: Казахстан , Алмат ы

Репутация: 1
Всего: 2



Цитата(Griphon @ 7.5.2009,  19:42)
О том как получить инфу о процессоре такую как :тактовая частота в MHz, количество ядер, модель, Id производителя , cache  и т.д. читать здесь.
Начиная с версии 1.6  Mac адрес можно получить без использования JNI :

Mac (данная тема поднималась во время обсуждения защиты приложения  ) 

Если кто еще что не будет найдет, прошу выкладывать инфу(особенно для Linux(Unix)).

 smile ...счас протестирую на Центосе и ИКС ПИ smile 


--------------------
Нехорошо блин!!!
PM MAIL   Вверх
armixx
Дата 20.8.2010, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 16.8.2010

Репутация: нет
Всего: нет



to Griphon:
А где Вы у File нашли методы getTotalSpace() и getUsableSpace()?
PM MAIL   Вверх
powerOn
Дата 20.8.2010, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Цитата(armixx @  20.8.2010,  13:55 Найти цитируемый пост)
А где Вы у File нашли методы getTotalSpace() и getUsableSpace()? 

Эти методы появились в Java 1.6


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0918 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.