java.lang.management パッケージ - OperatingSystemMXBean インタフェース
ManagementFactory クラスを介して取得できるMXBeanの一つが実装するインタフェース。
- java.lang.management パッケージ - ManagementFactory クラス - HHeLiBeXの日記 正道編
- OperatingSystemMXBean (Java 2 Platform SE 5.0)
名前から推測できるとおり、OSの情報を取得するためのMXBean。
実際に実行してみる。
今回用いたのは、次のJava VM。
import java.lang.management.ManagementFactory; import java.lang.management.OperatingSystemMXBean; public class Main { /** * @param args */ public static void main(String[] args) { System.out.printf("%-20s = %s\n", "java.version", System.getProperty("java.version")); System.out.printf("%-20s = %s\n", "java.vendor", System.getProperty("java.vendor")); System.out.printf("%-20s = %s\n", "java.runtime.version", System.getProperty("java.runtime.version")); System.out.printf("%-20s = %s\n", "os.name", System.getProperty("os.name")); System.out.printf("%-20s = %s\n", "os.version", System.getProperty("os.version")); System.out.printf("%-20s = %s\n", "os.arch", System.getProperty("os.arch")); System.out.println("========"); System.out.printf("%-20s = %s\n", "availableProcessors", Runtime.getRuntime().availableProcessors()); System.out.println("========"); OperatingSystemMXBean operatingSystemMXBean = ManagementFactory.getOperatingSystemMXBean(); System.out.printf("%-21s: %s\n", "Name", operatingSystemMXBean.getName()); System.out.printf("%-21s: %s\n", "Version", operatingSystemMXBean.getVersion()); System.out.printf("%-21s: %s\n", "Arch", operatingSystemMXBean.getArch()); System.out.printf("%-21s: %s\n", "AvailableProcessors", operatingSystemMXBean.getAvailableProcessors()); } }
今回はOSに関する情報ということで、システムプロパティなどから取得可能な情報も一緒に出力してみた。RuntimeクラスにavailableProcessors()メソッドがあるのは今回初めて知った。
Sun Java 2 SDK 1.5.0_22
java.version = 1.5.0_22 java.vendor = Sun Microsystems Inc. java.runtime.version = 1.5.0_22-b03 os.name = Windows Vista os.version = 6.0 os.arch = x86 ======== availableProcessors = 2 ======== Name : Windows Vista Version : 6.0 Arch : x86 AvailableProcessors : 2
java.version = 1.5.0 java.vendor = IBM Corporation java.runtime.version = pwi32dev-20090707 (SR10 ) os.name = Windows Vista os.version = 6.0 build 6002 Service Pack 2 os.arch = x86 ======== availableProcessors = 2 ======== Name : Windows Vista Version : 6.0 build 6002 Service Pack 2 Arch : x86 AvailableProcessors : 2