[解決済み】OSレベルのシステム情報を取得する
2022-04-03 19:10:52
質問
現在、様々なプラットフォーム(主にSolaris、Linux、Windows)で実行可能なJavaアプリを作っています。
現在使用しているディスク容量、CPU使用率、使用メモリなどの情報をOSから抽出することに成功した方はいらっしゃいますか?Javaアプリ自体が消費しているものについてはどうでしょうか?
できれば、JNIを使わずにこれらの情報を取得したいのですが。
どのように解決するのですか?
Runtimeクラスから限られたメモリ情報を取得することができます。これは本当にあなたが探しているものではありませんが、私は完全性のためにそれを提供することを考えました。以下はその例です。Edit: java.io.Fileクラスからディスク使用量の情報を得ることもできます。ディスク使用量に関するものは、Java 1.6以降が必要です。
public class Main {
public static void main(String[] args) {
/* Total number of processors or cores available to the JVM */
System.out.println("Available processors (cores): " +
Runtime.getRuntime().availableProcessors());
/* Total amount of free memory available to the JVM */
System.out.println("Free memory (bytes): " +
Runtime.getRuntime().freeMemory());
/* This will return Long.MAX_VALUE if there is no preset limit */
long maxMemory = Runtime.getRuntime().maxMemory();
/* Maximum amount of memory the JVM will attempt to use */
System.out.println("Maximum memory (bytes): " +
(maxMemory == Long.MAX_VALUE ? "no limit" : maxMemory));
/* Total memory currently available to the JVM */
System.out.println("Total memory available to JVM (bytes): " +
Runtime.getRuntime().totalMemory());
/* Get a list of all filesystem roots on this system */
File[] roots = File.listRoots();
/* For each filesystem root, print some info */
for (File root : roots) {
System.out.println("File system root: " + root.getAbsolutePath());
System.out.println("Total space (bytes): " + root.getTotalSpace());
System.out.println("Free space (bytes): " + root.getFreeSpace());
System.out.println("Usable space (bytes): " + root.getUsableSpace());
}
}
}
関連
-
[解決済み] JDBC タイプの方言マッピングがありません。1111
-
[解決済み] java.sql.SQLRecoverableException: IO エラーです。NL Exceptionが発生しました
-
[解決済み] JavaFX 同じパッケージ内なのに「場所が必要です。
-
[解決済み] Javaでdoubleをfloatに変換する
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] Javaで現在のスタックトレースを取得するにはどうすればよいですか?
-
[解決済み] Android: リソースから名前を使って文字列を取得するには?
-
[解決済み] Androidのシステムバージョンを確認するにはどうすればよいですか?
-
[解決済み】Javaではfinallyブロックは必ず実行されるのですか?
-
[解決済み】JavaでコンピュータのCPU、メモリ、ディスクの使用状況を監視するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Java - JTextFieldが空かどうかを確認する
-
[解決済み] Java の substring() の時間複雑性
-
[解決済み] android.support.v4.app.FragmentActivity' で 'TAG' がプライベートアクセスされている。
-
[解決済み] mavenのコンパイルに失敗するのはなぜですか?
-
[解決済み] 親から継承したメソッドの可視性を下げることができない [重複]。
-
[解決済み] eclipseからTomcatに物理的に発行されるmyjspはどこにあるのでしょうか?
-
[解決済み] タイプの安全性。アンチェック・キャスト
-
[解決済み] javaでメソッドを呼び出すプログラムのエラー修正
-
[解決済み] Eclipseでクラスとそれに対応するファイルの名前を変更する方法は?
-
[解決済み】JavaでコンピュータのCPU、メモリ、ディスクの使用状況を監視するには?