001 /* 002 * SystemInfo 003 * 004 * Copyright (c) 2000, 2001, 2002, 2003 Marco Schmidt. 005 * All rights reserved. 006 */ 007 008 package net.sourceforge.jiu.util; 009 010 import net.sourceforge.jiu.apps.StringIndexConstants; 011 import net.sourceforge.jiu.apps.Strings; 012 013 /** 014 * Class to retrieve system information in a human-readable form. 015 * @author Marco Schmidt 016 */ 017 public class SystemInfo implements StringIndexConstants 018 { 019 private SystemInfo() 020 { 021 } 022 023 public static String getMemoryInfo(Strings strings) 024 { 025 Runtime runtime = Runtime.getRuntime(); 026 long freeMemory = runtime.freeMemory(); 027 long totalMemory = runtime.totalMemory(); 028 long usedMemory = totalMemory - freeMemory; 029 return 030 strings.get(StringIndexConstants.FREE_MEMORY) + "=" + freeMemory + "\n" + 031 strings.get(StringIndexConstants.USED_MEMORY) + "=" + usedMemory + "\n" + 032 strings.get(StringIndexConstants.TOTAL_MEMORY) + "=" + totalMemory + "\n"; 033 } 034 035 /** 036 * Returns a multiple-line text with information on the Java Virtual Machine, 037 * the path settings and the operating system used, regarding the current 038 * language by using a {@link Strings} resource. 039 * @return system information as String 040 * @see java.lang.System#getProperty(String) 041 */ 042 public static String getSystemInfo(Strings strings) 043 { 044 final String[] PROPERTIES = 045 {"java.version", 046 "java.vendor", 047 "java.vendor.url", 048 "java.home", 049 "java.vm.specification.version", 050 "java.vm.specification.vendor", 051 "java.vm.specification.name", 052 "java.vm.version", 053 "java.vm.vendor", 054 "java.vm.name", 055 "java.specification.version", 056 "java.specification.vendor", 057 "java.specification.name", 058 "java.class.version", 059 "java.class.path", 060 "os.name", 061 "os.arch", 062 "os.version", 063 "sun.cpu.endian", 064 "sun.cpu.isalist", 065 }; 066 final int[] STRING_INDEX_VALUES = 067 { 068 PROPERTY_JAVA_VERSION, 069 PROPERTY_JAVA_VENDOR, 070 PROPERTY_JAVA_VENDOR_URL, 071 PROPERTY_JAVA_HOME, 072 PROPERTY_JAVA_VM_SPECIFICATION_VERSION, 073 PROPERTY_JAVA_VM_SPECIFICATION_VENDOR, 074 PROPERTY_JAVA_VM_SPECIFICATION_NAME, 075 PROPERTY_JAVA_VM_VERSION, 076 PROPERTY_JAVA_VM_VENDOR, 077 PROPERTY_JAVA_VM_NAME, 078 PROPERTY_JAVA_SPECIFICATION_VERSION, 079 PROPERTY_JAVA_SPECIFICATION_VENDOR, 080 PROPERTY_JAVA_SPECIFICATION_NAME, 081 PROPERTY_JAVA_CLASS_VERSION, 082 PROPERTY_JAVA_CLASS_PATH, 083 PROPERTY_OS_NAME, 084 PROPERTY_OS_ARCH, 085 PROPERTY_OS_VERSION, 086 CPU_ENDIANNESS, 087 CPU_ISALIST 088 }; 089 StringBuffer sb = new StringBuffer(); 090 for (int i = 0; i < PROPERTIES.length; i++) 091 { 092 try 093 { 094 String result = System.getProperty(PROPERTIES[i]); 095 if (result != null) 096 { 097 if (sb.length() > 0) 098 { 099 sb.append("\n"); 100 } 101 sb.append(strings.get(STRING_INDEX_VALUES[i])); 102 sb.append('='); 103 sb.append(result); 104 } 105 } 106 catch (Exception e) 107 { 108 } 109 } 110 return sb.toString(); 111 } 112 }