OSHI — это бесплатная (родная) библиотека информации об операционной системе и оборудовании на основе JNA для Java. Он не требует установки каких-либо дополнительных собственных библиотек и призван обеспечить кросс-платформенную реализацию для получения системной информации, такой как версия ОС, процессы, использование памяти и ЦП, диски и разделы, устройства, датчики и т. д.
- Поддерживаемые платформы
- Загрузки и управление зависимостями
- Документация
- Использование
- Поддерживаемые функции
- Поддерживать
- OSHI для предприятия
- Контактная информация службы безопасности
- Статус непрерывного интеграционного теста
- Как я могу помочь?
- Вклад в OSHI
- Благодарности
- Лицензия
Поддерживаемые платформы
- Окна
- macOS
- Линукс (Андроид)
- UNIX (AIX, FreeBSD, OpenBSD, Solaris)
Документация
- API (Javadocs)
- Часто задаваемые вопросы
- Журнал изменений
- Вопросы производительности
- Основные изменения версии
- Пример вывода
- Приложения и проекты, использующие OSHI
Загрузки и управление зависимостями
Стабильная версия выпуска
- JDK8: оши-ядро-6.6.5
- JPMS: оши-core-java11-6.6.5
- JDK6: оши-ядро-3.14.0
Текущая разработка (SNAPSHOT) для загрузки
- JDK8: oshi-core-6.6.6-SNAPSHOT
- JPMS: oshi-core-java11-6.6.6-SNAPSHOT
Использование
- Включите OSHI и его зависимости в ваш путь к классам.
- Мы настоятельно рекомендуем вам добавить
oshi-core
в качестве зависимости к менеджеру зависимостей вашего проекта, например Maven или Gradle. - Для Android вам необходимо добавить артефакт AAR для JNA и исключить транзитивную зависимость OSHI (JAR).
- Если вы столкнулись с проблемами
NoClassDefFoundError
или NoSuchMethodError
, ознакомьтесь с часто задаваемыми вопросами.
- Создайте новый экземпляр
SystemInfo
- Используйте геттеры из
SystemInfo
для доступа к компонентам оборудования или операционной системы, например:
SystemInfo si = new SystemInfo ();
HardwareAbstractionLayer hal = si . getHardware ();
CentralProcessor cpu = hal . getProcessor ();
Примеры см. в SystemInfoTest.java. Чтобы увидеть пример вывода для вашей машины:
git clone https://github.com/oshi/oshi.git && cd oshi
./mvnw test-compile -pl oshi-core exec:java
-Dexec.mainClass= " oshi.SystemInfoTest "
-Dexec.classpathScope= " test "
Некоторые параметры можно настроить в файле oshi.properties
, которым также можно управлять с помощью класса GlobalConfig
. Это следует делать при запуске, поскольку конфигурация не является потокобезопасной, и OSHI не гарантирует повторное чтение конфигурации во время работы.
Артефакт oshi-demo
включает в себя несколько примеров использования OSHI для получения информации, включая базовый графический интерфейс Swing.
Поддерживаемые функции
- Компьютерная система и прошивка, плинтус
- Операционная система и версия/сборка
- Физические (ядерные) и логические (гиперпоточные) ЦП, группы процессоров, узлы NUMA
- Загрузка системы и процессора, счетчики использования, прерывания, время безотказной работы
- Время работы процесса, ЦП, использование памяти, пользователь/группа, аргументы командной строки, сведения о потоке
- Используемая/доступная физическая и виртуальная память
- Подключенные файловые системы (тип, полезное и общее пространство, параметры, операции чтения и записи)
- Диски (модель, серийный номер, размер, операции чтения и записи) и разделы
- Сетевые интерфейсы (IP-адреса, входная/выходная полоса пропускания), сетевые параметры, статистика TCP/UDP
- Состояние батареи (% емкости, оставшееся время, статистика использования энергии)
- USB-устройства
- Подключенные дисплеи (с информацией EDID), графические и звуковые карты
- Датчики (температуры, скорости вращения вентиляторов, напряжения) на некотором оборудовании
Поддерживать
- Для сообщений об ошибках, запросов на добавление новых функций или общих вопросов о долгосрочных планах OSHI создайте проблему.
- Чтобы получить помощь в интеграции OSHI в ваш собственный проект или при проверке кода сопровождающего ваших запросов, отметьте
@dbwiddis
в задачах или запросах на включение на сайте вашего проекта. - По вопросам «как сделать», касающимся использования API, обратитесь к примерам в проекте
oshi-demo
, создайте проблему или выполните поиск в Stack Overflow, используя тег oshi
, задав новый вопрос, если на него еще не было ответа. - Чтобы сказать спасибо основному сопровождающему OSHI, вы можете спонсировать его или купить ему кофе.
OSHI для предприятия
Доступно как часть подписки Tidelift.
Разработчики OSHI и тысяч других пакетов сотрудничают с Tidelift, предоставляя коммерческую поддержку и обслуживание зависимостей с открытым исходным кодом, которые вы используете для создания своих приложений. Экономьте время, снижайте риски и улучшайте работоспособность кода, платя при этом специалистам по сопровождению именно тех зависимостей, которые вы используете. Узнать больше.
Контактная информация службы безопасности
Чтобы сообщить об уязвимости безопасности, воспользуйтесь контактом службы безопасности Tidelift. Tidelift будет координировать исправление и раскрытие информации.
Статус непрерывного интеграционного теста
Как я могу помочь?
OSHI возникла как независимая от платформы библиотека, не требующая дополнительного программного обеспечения и имевшая лицензию, совместимую как с открытым исходным кодом, так и с коммерческими продуктами. Мы разработали мощное ядро функций для основных операционных систем, но нам бы хотелось, чтобы вы помогли:
- Тестирование! Наше CI-тестирование ограничено несколькими платформами. Загрузите и протестируйте программу на различных операционных системах/версиях и оборудовании и помогите выявить пробелы, которые могли быть упущены в ходе нашей ограниченной разработки и тестирования. Конкретные высокоприоритетные потребности в тестировании включают в себя:
- Системы Windows с более чем 64 логическими процессорами
- Малиновый Пи
- Менее распространенные дистрибутивы Linux
- Вклад кода. Видите что-то, что работает не так или могло бы работать лучше? Помогите нам исправить это! Приветствуются новые участники.
- Документирование реализации. Наша Wiki немногочисленна, а артефакт
oshi-demo
— это место, где можно разместить идеи, подтверждающие концепцию. Хотите помочь новым пользователям пойти по вашим стопам? - Предлагаю новые функции. Нужен ли вам OSHI, чтобы делать что-то, чего он в настоящее время не делает? Дайте нам знать.
Вклад в OSHI
- Как внести свой вклад
- Как выпустить
Благодарности
Большое спасибо следующим компаниям за бесплатную поддержку проектов с открытым исходным кодом, включая OSHI:
- SonarCloud для ряда инструментов качества кода
- GitHub Actions, AppVeyor и Cirrus CI для непрерывного интеграционного тестирования.
- Профилировщик Java jProfile, используемый для устранения узких мест ЦП.
Лицензия
Этот проект лицензируется по лицензии MIT.