OSHI は、Java 用の無料の JNA ベース (ネイティブ) オペレーティング システムおよびハードウェア情報ライブラリです。追加のネイティブ ライブラリをインストールする必要はなく、OS バージョン、プロセス、メモリと CPU の使用状況、ディスクとパーティション、デバイス、センサーなどのシステム情報を取得するためのクロスプラットフォーム実装を提供することを目的としています。
- サポートされているプラットフォーム
- ダウンロードと依存関係の管理
- ドキュメント
- 使用法
- サポートされている機能
- サポート
- エンタープライズ向けの OSHI
- セキュリティ連絡先情報
- 継続的統合テストのステータス
- どうすれば助けられるでしょうか?
- OSHIへの貢献
- 謝辞
- ライセンス
サポートされているプラットフォーム
- 窓
- macOS
- リナックス(アンドロイド)
- UNIX (AIX、FreeBSD、OpenBSD、Solaris)
ドキュメント
- API (javadoc)
- よくある質問
- 変更ログ
- パフォーマンスに関する考慮事項
- メジャーバージョンの重大な変更
- サンプル出力
- OSHIを使用したアプリケーションとプロジェクト
ダウンロードと依存関係の管理
安定版リリースバージョン
- JDK8: オシコア-6.6.5
- JPMS: oshi-core-java11-6.6.5
- JDK6: オシコア-3.14.0
現在の開発(スナップショット)のダウンロード
- JDK8: oshi-core-6.6.6-SNAPSHOT
- JPMS: oshi-core-java11-6.6.6-SNAPSHOT
使用法
- OSHI とその依存関係をクラスパスに含めます。
- Maven や Gradle などのプロジェクト依存関係マネージャーに
oshi-core
依存関係として追加することを強くお勧めします。 - Android の場合、JNA の AAR アーティファクトを追加し、OSHI の推移的 (JAR) 依存関係を除外する必要があります。
-
NoClassDefFoundError
またはNoSuchMethodError
問題が発生した場合は、FAQ を参照してください。
-
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
アーティファクトには、基本的な Swing GUI など、OSHI を使用して情報を取得する概念実証の例がいくつか含まれています。
サポートされている機能
- コンピュータ システムとファームウェア、ベースボード
- オペレーティング システムとバージョン/ビルド
- 物理 (コア) および論理 (ハイパースレッド) CPU、プロセッサ グループ、NUMA ノード
- システムおよびプロセッサごとの負荷、使用状況ティックカウンター、割り込み、稼働時間
- プロセス稼働時間、CPU、メモリ使用量、ユーザー/グループ、コマンドライン引数、スレッドの詳細
- 使用/利用可能な物理メモリと仮想メモリ
- マウントされたファイルシステム (タイプ、使用可能なスペースと合計スペース、オプション、読み取りと書き込み)
- ディスクドライブ (モデル、シリアル、サイズ、読み取りおよび書き込み) とパーティション
- ネットワーク インターフェイス (IP、入出力帯域幅)、ネットワーク パラメータ、TCP/UDP 統計
- バッテリーの状態 (% 容量、残り時間、電力使用量の統計)
- USB デバイス
- 接続されたディスプレイ (EDID 情報付き)、グラフィックスおよびオーディオ カード
- 一部のハードウェア上のセンサー (温度、ファン速度、電圧)
サポート
- バグレポート、機能リクエスト、または OSHI の長期計画に関する一般的な質問については、問題を作成してください。
- OSHI を独自のプロジェクトに統合したり、PR のメンテナー コード レビューをサポートするには、プロジェクト サイトの課題またはプル リクエストで
@dbwiddis
タグ付けしてください。 - API の使用に関する「方法」の質問については、
oshi-demo
プロジェクトの例を参照するか、問題を作成するか、 oshi
タグを使用して Stack Overflow で検索し、以前に回答されていない場合は新しい質問をしてください。 - OSHI の主なメンテナーに感謝の意を表すために、彼をスポンサーしたり、コーヒーを買ったりすることができます。
エンタープライズ向けの OSHI
Tidelift サブスクリプションの一部として利用可能
OSHI および他の何千ものパッケージのメンテナは、Tidelift と協力して、アプリケーションの構築に使用するオープンソースの依存関係に対する商用サポートとメンテナンスを提供しています。使用する正確な依存関係の保守者に料金を支払いながら、時間を節約し、リスクを軽減し、コードの健全性を向上させます。もっと詳しく知る。
セキュリティ連絡先情報
セキュリティの脆弱性を報告するには、Tidelift のセキュリティ連絡先を使用してください。 Tidelift が修正と公開を調整します。
継続的統合テストのステータス
どうすれば助けられるでしょうか?
OSHI は、追加のソフトウェアを必要とせず、オープン ソースと商用製品の両方と互換性のあるライセンスを持つ、プラットフォームに依存しないライブラリとして誕生しました。私たちは主要なオペレーティング システム上で強力な機能の中核を開発してきましたが、次の点でご協力いただければ幸いです。
- テスト中!当社の CI テストは、いくつかのプラットフォームに限定されています。さまざまなオペレーティング システム/バージョンおよびハードウェアでプログラムをダウンロードしてテストし、限られた開発とテストで見逃した可能性のあるギャップを特定するのに役立ちます。優先度の高い具体的なテストのニーズには次のものがあります。
- 64 個を超える論理プロセッサを搭載した Windows システム
- ラズベリーパイ
- あまり一般的ではない Linux ディストリビューション
- コードに貢献しています。正しく動作していないもの、またはもっと改善できる可能性があるものはありますか?修正を手伝ってください!新しい寄稿者を歓迎します。
- 実装の文書化。私たちの Wiki はまばらであり、
oshi-demo
アーティファクトは概念実証のアイデアをホストする場所です。新しいユーザーがあなたの足跡をたどるのを支援したいですか? - 新しい機能を提案します。 OSHI が現在行っていないことを行う必要がありますか?お知らせください。
OSHIへの貢献
謝辞
OSHI を含むオープンソース プロジェクトの無償サポートを提供してくださった以下の企業に多大な感謝を申し上げます。
- さまざまなコード品質ツールのための SonarCloud
- 継続的統合テスト用の GitHub Actions、AppVeyor、および Cirrus CI
- CPU ボトルネックを排除するために使用される jProfile Java Profiler
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています。