1

もしそうなら、どうやって?学校でチームプロジェクトをやっています。Java は実際にはハードウェアに直接アクセスできないと思っていました。これを知る必要があるのは、簡単なグーグル検索を行った後、何も見つからず、私のチーム メンバー (これを行い、Java を使用したいと考えている) は、どうすればよいかわからないように見えるからです。やった。

4

4 に答える 4

2

あなたが探しているのはSIGARAPIです

概要

Sigar APIは、次のようなシステム情報を収集するためのポータブルインターフェイスを提供します。

  1. システムメモリ、スワップ、cpu、負荷平均、稼働時間、ログイン
  2. プロセスごとのメモリ、CPU、クレデンシャル情報、状態、引数、環境、開いているファイル
  3. ファイルシステムの検出とメトリック
  4. ネットワークインターフェイスの検出、構成情報、およびメトリック
  5. TCPおよびUDP接続テーブルネットワークルートテーブル

この情報はほとんどのオペレーティングシステムで利用できますが、各OSには独自の方法で情報を提供します。SIGARは、基盤となるプラットフォームに関係なく、この情報にアクセスするための1つのAPIを開発者に提供します。コアAPIは、Java、Perl、Ruby、Python、Erlang、PHP、およびC#用に現在実装されているバインディングを使用して純粋なCで実装されています。

于 2010-08-30T22:08:41.760 に答える
2

サンドボックス環境、つまりJava仮想マシン(JVM)で実行されるため、Javaから直接ハードウェアにアクセスできないというあなたの権利(ネイティブコードでの呼び出しを除きますが、それはあなたの後ではありません)。

ただし、基盤となる OS から収集する JVM からいくつかの基本的な情報を取得できます。Java を使用して OS レベルのシステム情報を取得する方法をご覧ください

于 2010-08-30T21:53:11.190 に答える
0

ネイティブ Java API を使用して取得できる情報の量はごくわずかです。これは、プログラムは通常、自分が置かれている VM についてしか認識していないためです。

ただし、コマンド ラインを呼び出し、ネイティブ アプリを実行し、結果を解析することはできます。ただし、言語に通常関連付けられているクロスプラットフォームの利点が失われるため、Java アプリでは特に良い形式ではありません。

于 2010-08-30T21:56:07.983 に答える
0

System.getEnv()を使用して、プロセッサに関する基本的な情報を取得できます。

また、 Runtime.getRuntime()を使用することもできます。詳細については、R. Kettelerij の応答を参照してください。

別のオプションは、JMXを使用することです。たとえば、MemoryMXBeanは、RAM の使用状況 (ヒープと非ヒープ) に関する情報を提供します。

于 2010-08-30T22:00:02.633 に答える