OSHI adalah perpustakaan Sistem Operasi dan Informasi Perangkat Keras berbasis JNA (asli) gratis untuk Java. Itu tidak memerlukan instalasi perpustakaan asli tambahan dan bertujuan untuk menyediakan implementasi lintas platform untuk mengambil informasi sistem, seperti versi OS, proses, penggunaan memori dan CPU, disk dan partisi, perangkat, sensor, dll.
- Platform yang Didukung
- Unduhan dan Manajemen Ketergantungan
- Dokumentasi
- Penggunaan
- Fitur yang Didukung
- Mendukung
- OSHI untuk Perusahaan
- Informasi Kontak Keamanan
- Status Uji Integrasi Berkelanjutan
- Bagaimana Saya Dapat Membantu?
- Berkontribusi pada OSHI
- Ucapan Terima Kasih
- Lisensi
Platform yang Didukung
- jendela
- macOS
- Linux (Android)
- UNIX (AIX, FreeBSD, OpenBSD, Solaris)
Dokumentasi
- API (javadocs)
- Pertanyaan Umum
- Ubah Log
- Pertimbangan Kinerja
- Perubahan yang Dapat Melanggar Versi Utama
- Contoh Keluaran
- Aplikasi dan Proyek menggunakan OSHI
Unduhan dan Manajemen Ketergantungan
Versi Rilis Stabil
- JDK8: oshi-core-6.6.5
- JPMS: oshi-core-java11-6.6.5
- JDK6: oshi-core-3.14.0
Unduhan Perkembangan Saat Ini (SNAPSHOT).
- JDK8: oshi-core-6.6.6-SNAPSHOT
- JPMS: oshi-core-java11-6.6.6-SNAPSHOT
Penggunaan
- Sertakan OSHI dan dependensinya pada classpath Anda.
- Kami sangat menyarankan Anda menambahkan
oshi-core
sebagai dependensi ke manajer dependensi proyek Anda seperti Maven atau Gradle. - Untuk Android, Anda harus menambahkan artefak AAR untuk JNA dan mengecualikan ketergantungan transitif (JAR) OSHI.
- Lihat FAQ jika Anda mengalami masalah
NoClassDefFoundError
atau NoSuchMethodError
.
- Buat instance baru dari
SystemInfo
- Gunakan pengambil dari
SystemInfo
untuk mengakses komponen perangkat keras atau sistem operasi, seperti:
SystemInfo si = new SystemInfo ();
HardwareAbstractionLayer hal = si . getHardware ();
CentralProcessor cpu = hal . getProcessor ();
Lihat SystemInfoTest.java sebagai contoh. Untuk melihat contoh keluaran mesin Anda:
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 "
Beberapa pengaturan dapat dikonfigurasi di file oshi.properties
, yang juga dapat dimanipulasi menggunakan kelas GlobalConfig
. Ini harus dilakukan saat startup, karena konfigurasi tidak aman untuk thread dan OSHI tidak menjamin pembacaan ulang konfigurasi selama pengoperasian.
Artefak oshi-demo
mencakup beberapa contoh bukti konsep penggunaan OSHI untuk memperoleh informasi, termasuk GUI Swing dasar.
Fitur yang Didukung
- Sistem Komputer dan firmware, alas tiang
- Sistem Operasi dan Versi/Build
- CPU Fisik (inti) dan Logis (hyperthreaded), grup prosesor, node NUMA
- Beban sistem dan per prosesor, penghitung centang penggunaan, interupsi, waktu aktif
- Waktu aktif proses, CPU, penggunaan memori, pengguna/grup, argumen baris perintah, detail thread
- Memori fisik dan virtual digunakan/tersedia
- Sistem file yang terpasang (tipe, ruang yang dapat digunakan dan total, opsi, baca dan tulis)
- Disk drive (model, serial, ukuran, baca dan tulis) dan partisi
- Antarmuka jaringan (IP, bandwidth masuk/keluar), parameter jaringan, statistik TCP/UDP
- Status baterai (% kapasitas, sisa waktu, statistik penggunaan daya)
- Perangkat USB
- Layar yang terhubung (dengan info EDID), kartu grafis dan audio
- Sensor (suhu, kecepatan kipas, voltase) pada beberapa perangkat keras
Mendukung
- Untuk laporan bug, permintaan fitur, atau pertanyaan umum tentang rencana jangka panjang OSHI, silakan buat masalah.
- Untuk bantuan dalam mengintegrasikan OSHI ke dalam proyek Anda sendiri atau tinjauan kode pengelola PR Anda, tandai
@dbwiddis
di isu atau tarik permintaan di situs proyek Anda. - Untuk pertanyaan "cara" mengenai penggunaan API, lihat contoh di proyek
oshi-demo
, buat masalah, atau cari di Stack Overflow menggunakan tag oshi
, ajukan pertanyaan baru jika belum pernah terjawab sebelumnya. - Untuk mengucapkan terima kasih kepada pengelola utama OSHI, Anda dapat mensponsorinya atau membelikannya kopi.
OSHI untuk Perusahaan
Tersedia sebagai bagian dari Langganan Tidelift
Pengelola OSHI dan ribuan paket lainnya bekerja sama dengan Tidelift untuk memberikan dukungan komersial dan pemeliharaan untuk dependensi sumber terbuka yang Anda gunakan untuk membangun aplikasi Anda. Menghemat waktu, mengurangi risiko, dan meningkatkan kesehatan kode, sekaligus membayar pengelola dependensi yang Anda gunakan. Pelajari lebih lanjut.
Informasi Kontak Keamanan
Untuk melaporkan kerentanan keamanan, silakan gunakan kontak keamanan Tidelift. Tidelift akan mengoordinasikan perbaikan dan pengungkapan.
Status Uji Integrasi Berkelanjutan
Bagaimana Saya Dapat Membantu?
OSHI berasal dari perpustakaan platform-independen yang tidak memerlukan perangkat lunak tambahan dan memiliki lisensi yang kompatibel dengan produk open source dan komersial. Kami telah mengembangkan fitur inti yang kuat pada Sistem Operasi utama, namun kami ingin Anda membantu dengan:
- Pengujian! Pengujian CI kami terbatas pada beberapa platform. Unduh dan uji program pada berbagai sistem operasi/versi dan perangkat keras dan bantu mengidentifikasi kesenjangan yang mungkin terlewatkan oleh pengembangan dan pengujian terbatas kami. Kebutuhan pengujian prioritas tinggi yang spesifik meliputi:
- Sistem Windows dengan lebih dari 64 prosesor logis
- Raspberry Pi
- Distribusi Linux yang kurang umum
- Berkontribusi kode. Melihat sesuatu yang tidak berfungsi dengan baik atau dapat berfungsi lebih baik? Bantu kami memperbaikinya! Kontributor baru dipersilakan.
- Mendokumentasikan implementasi. Wiki kami jarang dan artefak
oshi-demo
adalah tempat untuk menampung ide-ide pembuktian konsep. Ingin membantu pengguna baru mengikuti jejak Anda? - Menyarankan fitur baru. Apakah Anda memerlukan OSHI untuk melakukan sesuatu yang saat ini tidak dilakukannya? Beri tahu kami.
Berkontribusi pada OSHI
- Bagaimana Berkontribusi
- Cara Melepaskannya
Ucapan Terima Kasih
Terima kasih banyak kepada perusahaan-perusahaan berikut yang telah memberikan dukungan gratis untuk proyek Open Source termasuk OSHI:
- SonarCloud untuk berbagai alat kualitas kode
- GitHub Actions, AppVeyor, dan Cirrus CI untuk pengujian integrasi berkelanjutan
- jProfile Java Profiler digunakan untuk menghilangkan kemacetan CPU
Lisensi
Proyek ini dilisensikan di bawah Lisensi MIT.