OSHI es una biblioteca gratuita de información de hardware y sistema operativo basada en JNA (nativa) para Java. No requiere la instalación de bibliotecas nativas adicionales y tiene como objetivo proporcionar una implementación multiplataforma para recuperar información del sistema, como la versión del sistema operativo, procesos, uso de memoria y CPU, discos y particiones, dispositivos, sensores, etc.
- Plataformas compatibles
- Descargas y gestión de dependencias
- Documentación
- Uso
- Funciones admitidas
- Apoyo
- OSHI para empresas
- Información de contacto de seguridad
- Estado de la prueba de integración continua
- ¿Cómo puedo ayudar?
- Contribuyendo a OSHI
- Expresiones de gratitud
- Licencia
Plataformas compatibles
- ventanas
- macos
- Linux (Androide)
- UNIX (AIX, FreeBSD, OpenBSD, Solaris)
Documentación
- API (javadocs)
- Preguntas frecuentes
- Registro de cambios
- Consideraciones de rendimiento
- Cambios importantes en la versión
- Salida de muestra
- Aplicaciones y Proyectos usando OSHI
Descargas y gestión de dependencias
Versión de lanzamiento estable
- JDK8: oshi-core-6.6.5
- JPMS: oshi-core-java11-6.6.5
- JDK6: oshi-core-3.14.0
Descargas de desarrollo actual (SNAPSHOT)
- JDK8: oshi-core-6.6.6-INSTANTÁNEA
- JPMS: oshi-core-java11-6.6.6-INSTANTÁNEA
Uso
- Incluya OSHI y sus dependencias en su classpath.
- Le recomendamos encarecidamente que agregue
oshi-core
como dependencia al administrador de dependencias de su proyecto, como Maven o Gradle. - Para Android, deberá agregar el artefacto AAR para JNA y excluir la dependencia transitiva (JAR) de OSHI.
- Consulte las preguntas frecuentes si encuentra problemas con
NoClassDefFoundError
o NoSuchMethodError
.
- Crear una nueva instancia de
SystemInfo
- Utilice los captadores de
SystemInfo
para acceder a componentes de hardware o del sistema operativo, como:
SystemInfo si = new SystemInfo ();
HardwareAbstractionLayer hal = si . getHardware ();
CentralProcessor cpu = hal . getProcessor ();
Consulte SystemInfoTest.java para ver ejemplos. Para ver resultados de muestra para su máquina:
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 "
Algunas configuraciones se pueden configurar en el archivo oshi.properties
, que también se puede manipular usando la clase GlobalConfig
. Esto debe hacerse al inicio, ya que la configuración no es segura para subprocesos y OSHI no garantiza la relectura de la configuración durante la operación.
El artefacto oshi-demo
incluye varios ejemplos de prueba de concepto del uso de OSHI para obtener información, incluida una GUI Swing básica.
Funciones admitidas
- Sistema informático y firmware, placa base
- Sistema operativo y versión/compilación
- CPU físicas (núcleo) y lógicas (hiperproceso), grupos de procesadores, nodos NUMA
- Carga del sistema y por procesador, contadores de uso, interrupciones, tiempo de actividad
- Tiempo de actividad del proceso, CPU, uso de memoria, usuario/grupo, argumentos de línea de comando, detalles de subprocesos
- Memoria física y virtual utilizada/disponible
- Sistemas de archivos montados (tipo, espacio utilizable y total, opciones, lecturas y escrituras)
- Unidades de disco (modelo, serie, tamaño, lecturas y escrituras) y particiones
- Interfaces de red (IP, ancho de banda de entrada/salida), parámetros de red, estadísticas TCP/UDP
- Estado de la batería (% de capacidad, tiempo restante, estadísticas de uso de energía)
- Dispositivos USB
- Pantallas conectadas (con información EDID), tarjetas gráficas y de audio
- Sensores (temperatura, velocidad del ventilador, voltaje) en algunos hardware
Apoyo
- Para informes de errores, solicitudes de funciones o preguntas generales sobre los planes a largo plazo de OSHI, cree un problema.
- Para obtener ayuda para integrar OSHI en su propio proyecto o para la revisión del código del mantenedor de sus relaciones públicas, etiquete
@dbwiddis
en las incidencias o solicitudes de extracción en el sitio de su proyecto. - Para preguntas de "cómo hacer" sobre el uso de la API, consulte ejemplos en el proyecto
oshi-demo
, cree un problema o busque en Stack Overflow usando la etiqueta oshi
y haga una nueva pregunta si no se ha respondido antes. - Para agradecer al mantenedor principal de OSHI, puedes patrocinarlo o invitarlo a un café.
OSHI para empresas
Disponible como parte de la suscripción Tidelift
Los mantenedores de OSHI y miles de otros paquetes están trabajando con Tidelift para brindar soporte comercial y mantenimiento para las dependencias de código abierto que utiliza para crear sus aplicaciones. Ahorre tiempo, reduzca el riesgo y mejore la salud del código, mientras paga a los mantenedores de las dependencias exactas que utiliza. Obtenga más información.
Información de contacto de seguridad
Para informar una vulnerabilidad de seguridad, utilice el contacto de seguridad de Tidelift. Tidelift coordinará la solución y la divulgación.
Estado de prueba de integración continua
¿Cómo puedo ayudar?
OSHI se originó como una biblioteca independiente de la plataforma que no requería software adicional y tenía una licencia compatible tanto con productos comerciales como de código abierto. Hemos desarrollado un sólido núcleo de funciones en los principales sistemas operativos, pero nos encantaría que nos ayudara:
- ¡Pruebas! Nuestras pruebas de CI se limitan a unas pocas plataformas. Descargue y pruebe el programa en varios sistemas operativos/versiones y hardware y ayude a identificar brechas que nuestro desarrollo y pruebas limitados pueden haber pasado por alto. Las necesidades específicas de pruebas de alta prioridad incluyen:
- Sistemas Windows con más de 64 procesadores lógicos.
- Frambuesa Pi
- Distribuciones de Linux menos comunes
- Código contribuyente. ¿Ves algo que no funciona bien o podría funcionar mejor? ¡Ayúdanos a solucionarlo! Los nuevos contribuyentes son bienvenidos.
- Documentar la implementación. Nuestra Wiki es escasa y el artefacto
oshi-demo
es un lugar para albergar ideas de prueba de concepto. ¿Quieres ayudar a nuevos usuarios a seguir tus pasos? - Sugerir nuevas características. ¿Necesita OSHI para hacer algo que actualmente no hace? Háganoslo saber.
Contribuyendo a OSHI
- Cómo contribuir
- Cómo liberar
Expresiones de gratitud
Muchas gracias a las siguientes empresas por brindar soporte gratuito para proyectos de código abierto, incluido OSHI:
- SonarCloud para una variedad de herramientas de calidad de código
- GitHub Actions, AppVeyor y Cirrus CI para pruebas de integración continua
- El jProfile Java Profiler utilizado para eliminar los cuellos de botella de la CPU
Licencia
Este proyecto está bajo la licencia MIT.