Java 获取操作系统级别的系统信息

我目前正在构建一个Java应用程序,该应用程序最终可能在许多不同的平台上运行,但主要是Solaris,Linux和Windows的变体。

是否有人能够成功提取信息,例如当前使用的磁盘空间,CPU利用率和底层操作系统中使用的内存?Java应用程序本身正在消耗什么呢?

最好我不使用JNI来获取此信息。

回答:

你可以从Runtime类中获取一些有限的内存信息。确实不是你要找的东西,但我想为完整起见会提供它。这是一个小例子。编辑:你还可以从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());

}

}

}

以上是 Java 获取操作系统级别的系统信息 的全部内容, 来源链接: utcz.com/qa/413367.html

回到顶部