OSHI est une bibliothèque gratuite d'informations sur le système d'exploitation et le matériel basée sur JNA (native) pour Java. Il ne nécessite pas l'installation de bibliothèques natives supplémentaires et vise à fournir une implémentation multiplateforme pour récupérer des informations système, telles que la version du système d'exploitation, les processus, l'utilisation de la mémoire et du processeur, les disques et partitions, les périphériques, les capteurs, etc.
- Plateformes prises en charge
- Téléchargements et gestion des dépendances
- Documentation
- Usage
- Fonctionnalités prises en charge
- Soutien
- OSHI pour les entreprises
- Coordonnées de sécurité
- Statut du test d'intégration continue
- Comment puis-je aider ?
- Contribuer à OSHI
- Remerciements
- Licence
Plateformes prises en charge
- Fenêtres
- macOS
- Linux (Android)
- UNIX (AIX, FreeBSD, OpenBSD, Solaris)
Documentation
- API (javadocs)
- FAQ
- Journal des modifications
- Considérations relatives aux performances
- Modifications majeures de la version
- Exemple de sortie
- Applications et projets utilisant OSHI
Téléchargements et gestion des dépendances
Version stable
- JDK8 : oshi-core-6.6.5
- JPMS : oshi-core-java11-6.6.5
- JDK6 : oshi-core-3.14.0
Téléchargements de développement actuel (SNAPSHOT)
- JDK8 : oshi-core-6.6.6-INSTANTANÉ
- JPMS : oshi-core-java11-6.6.6-INSTANTANÉ
Usage
- Incluez OSHI et ses dépendances sur votre chemin de classe.
- Nous vous recommandons fortement d'ajouter
oshi-core
en tant que dépendance à votre gestionnaire de dépendances de projet tel que Maven ou Gradle. - Pour Android, vous devrez ajouter l'artefact AAR pour JNA et exclure la dépendance transitive (JAR) d'OSHI.
- Consultez la FAQ si vous rencontrez des problèmes
NoClassDefFoundError
ou NoSuchMethodError
.
- Créer une nouvelle instance de
SystemInfo
- Utilisez les getters de
SystemInfo
pour accéder aux composants matériels ou du système d'exploitation, tels que :
SystemInfo si = new SystemInfo ();
HardwareAbstractionLayer hal = si . getHardware ();
CentralProcessor cpu = hal . getProcessor ();
Voir SystemInfoTest.java pour des exemples. Pour voir un exemple de sortie pour votre machine :
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 "
Certains paramètres sont configurables dans le fichier oshi.properties
, qui peut également être manipulé à l'aide de la classe GlobalConfig
. Cela doit être fait au démarrage, car la configuration n'est pas thread-safe et OSHI ne garantit pas la relecture de la configuration pendant le fonctionnement.
L'artefact oshi-demo
comprend plusieurs exemples de validation de principe d'utilisation d'OSHI pour obtenir des informations, y compris une interface graphique Swing de base.
Fonctionnalités prises en charge
- Système informatique et micrologiciel, plinthe
- Système d'exploitation et version/build
- Processeurs physiques (cœur) et logiques (hyperthread), groupes de processeurs, nœuds NUMA
- Charge du système et par processeur, compteurs d'utilisation, interruptions, temps de disponibilité
- Disponibilité du processus, CPU, utilisation de la mémoire, utilisateur/groupe, arguments de ligne de commande, détails du thread
- Mémoire physique et virtuelle utilisée/disponible
- Systèmes de fichiers montés (type, espace utilisable et total, options, lectures et écritures)
- Lecteurs de disque (modèle, série, taille, lectures et écritures) et partitions
- Interfaces réseau (IP, bande passante entrée/sortie), paramètres réseau, statistiques TCP/UDP
- État de la batterie (% de capacité, temps restant, statistiques de consommation d'énergie)
- Périphériques USB
- Écrans connectés (avec informations EDID), cartes graphiques et audio
- Capteurs (température, vitesses des ventilateurs, tension) sur certains matériels
Soutien
- Pour les rapports de bogues, les demandes de fonctionnalités ou les questions générales sur les plans à long terme d'OSHI, veuillez créer un problème.
- Pour obtenir de l'aide sur l'intégration d'OSHI dans votre propre projet ou pour la révision du code du responsable de vos PR, identifiez
@dbwiddis
dans les problèmes ou les demandes d'extraction sur le site de votre projet. - Pour des questions « comment faire » concernant l'utilisation de l'API, consultez des exemples dans le projet
oshi-demo
, créez un problème ou effectuez une recherche sur Stack Overflow à l'aide de la balise oshi
, en posant une nouvelle question si elle n'a pas reçu de réponse auparavant. - Pour remercier le principal responsable d'OSHI, vous pouvez le parrainer ou lui offrir un café.
OSHI pour les entreprises
Disponible dans le cadre de l’abonnement Tidelift
Les responsables d'OSHI et de milliers d'autres packages travaillent avec Tidelift pour fournir un support commercial et une maintenance pour les dépendances open source que vous utilisez pour créer vos applications. Gagnez du temps, réduisez les risques et améliorez la santé du code, tout en rémunérant les responsables des dépendances exactes que vous utilisez. Apprendre encore plus.
Coordonnées de sécurité
Pour signaler une vulnérabilité de sécurité, veuillez utiliser le contact de sécurité Tidelift. Tidelift coordonnera le correctif et la divulgation.
Statut du test d'intégration continue
Comment puis-je aider ?
OSHI est à l'origine une bibliothèque indépendante de la plate-forme qui ne nécessitait pas de logiciel supplémentaire et disposait d'une licence compatible avec les produits open source et commerciaux. Nous avons développé un solide noyau de fonctionnalités sur les principaux systèmes d'exploitation, mais nous aimerions que vous nous aidiez en :
- Essai! Nos tests CI sont limités à quelques plates-formes. Téléchargez et testez le programme sur différents systèmes d'exploitation/versions et matériels et aidez à identifier les lacunes que notre développement et nos tests limités ont pu manquer. Les besoins spécifiques en matière de tests hautement prioritaires comprennent :
- Systèmes Windows avec plus de 64 processeurs logiques
- Framboise Pi
- Distributions Linux moins courantes
- Code contributeur. Vous voyez quelque chose qui ne fonctionne pas correctement ou qui pourrait mieux fonctionner ? Aidez-nous à le réparer ! Les nouveaux contributeurs sont les bienvenus.
- Documenter la mise en œuvre. Notre wiki est clairsemé et l'artefact
oshi-demo
est un endroit pour héberger des idées de preuve de concept. Vous souhaitez aider les nouveaux utilisateurs à suivre vos traces ? - Proposer de nouvelles fonctionnalités. Avez-vous besoin d'OSHI pour faire quelque chose qu'il ne fait pas actuellement ? Faites-le-nous savoir.
Contribuer à OSHI
- Comment contribuer
- Comment libérer
Remerciements
Un grand merci aux sociétés suivantes pour leur soutien gratuit aux projets Open Source, y compris OSHI :
- SonarCloud pour une gamme d'outils de qualité de code
- GitHub Actions, AppVeyor et Cirrus CI pour les tests d'intégration continue
- Le profileur Java jProfile utilisé pour éliminer les goulots d'étranglement du processeur
Licence
Ce projet est sous licence MIT.