且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

JRE环境查看工具

更新时间:2022-09-03 21:54:45

再做开发时候,常常需要查看下自己JRE的版本、所支持的字符集、当前JVM的默认字符集、系统属性等等。
 
常常令人感到很棘手,谁也说清楚。只有写个程序输出这些信息才知道。
 
下面查看的源码:
package lavasoft.common; 

import java.nio.charset.Charset; 
import java.util.*; 

/** 
* JRE环境查看工具 

* @author Administrator 2009-11-28 17:48:42 
*/
 
public class JVMInfoToolkit { 
        public static void main(String[] args) { 
                System.out.println("当前JRE:" + System.getProperty("java.version")); 
                System.out.println("当前JVM的默认字符集:" + Charset.defaultCharset()); 
                System.out.println("当前JRE可用的字符集列表:\n" + genJVMCharset()); 
                System.out.println("当前JVM运行时系统属性列表\n:" + genJVMProperties()); 

        } 

        /** 
         * 获取JVM所支持的字符集列表(格式为:字符集标准名称:[别名,别名...] 
         * 
         * @return 字符集列表 
         */
 
        public static String genJVMCharset() { 
                StringBuilder sb = new StringBuilder(); 
                SortedMap<String, Charset> map = Charset.availableCharsets(); 
                for (Map.Entry<String, Charset> entry : map.entrySet()) { 
                        sb.append(entry.getKey()).append(":").append(entry.getValue().aliases()).append("\n"); 
                } 
                return sb.toString(); 
        } 

        /** 
         * 获取当前JVM运行时系统属性信息,并按照名称进行排序 
         * 
         * @return 系统属性信息 
         */
 
        public static String genJVMProperties() { 
                StringBuilder sb = new StringBuilder(); 
                Properties props = System.getProperties(); 
                List<String> keylist = new ArrayList<String>(); 
                for (Object o : props.keySet()) { 
                        keylist.add(o.toString()); 
                } 
                Collections.sort(keylist, String.CASE_INSENSITIVE_ORDER); 
                for (String s : keylist) { 
                        sb.append(s).append("=").append(props.get(s)).append("\n"); 
                } 
                return sb.toString(); 
        } 
}
 
运行下结果,太长了:
当前JRE:1.6.0_16 
当前JVM的默认字符集:GB18030 
当前JRE可用的字符集列表: 
Big5:[csBig5] 
Big5-HKSCS:[big5-hkscs:unicode3.0, Big5_HKSCS, big5-hkscs, big5hkscs, big5hk] 
EUC-JP:[eucjis, Extended_UNIX_Code_Packed_Format_for_Japanese, x-eucjp, eucjp, csEUCPkdFmtjapanese, euc_jp, x-euc-jp] 
EUC-KR:[5601, ksc5601-1987, ksc5601_1987, euckr, ksc5601, ksc_5601, ks_c_5601-1987, euc_kr, csEUCKR] 
GB18030:[gb18030-2000] 
GB2312:[euc-cn, x-EUC-CN, gb2312-1980, gb2312, gb2312-80, euccn, EUC_CN] 
GBK:[CP936, windows-936] 
IBM-Thai:[838, cp838, ibm838, ibm-838] 
IBM00858:[cp858, ccsid00858, 858, cp00858] 
IBM01140:[ccsid01140, cp01140, 1140, cp1140] 
IBM01141:[cp1141, ccsid01141, cp01141, 1141] 
IBM01142:[cp01142, cp1142, 1142, ccsid01142] 
IBM01143:[cp01143, 1143, ccsid01143, cp1143] 
IBM01144:[cp01144, cp1144, ccsid01144, 1144] 
IBM01145:[cp1145, cp01145, ccsid01145, 1145] 
IBM01146:[ccsid01146, cp01146, cp1146, 1146] 
IBM01147:[ccsid01147, cp1147, 1147, cp01147] 
IBM01148:[cp1148, ccsid01148, 1148, cp01148] 
IBM01149:[cp1149, cp01149, ccsid01149, 1149] 
IBM037:[cs-ebcdic-cp-nl, 037, cp037, ebcdic-cp-nl, ibm-37, ebcdic-cp-wt, cs-ebcdic-cp-us, ebcdic-cp-ca, cs-ebcdic-cp-wt, csIBM037, ibm-037, cs-ebcdic-cp-ca, cpibm37, ibm037, ebcdic-cp-us] 
IBM1026:[cp1026, ibm-1026, 1026, ibm1026] 
IBM1047:[cp1047, 1047, ibm-1047] 
IBM273:[ibm-273, ibm273, cp273, 273] 
IBM277:[cp277, 277, ibm-277, ibm277] 
IBM278:[cp278, ebcdic-cp-se, 278, ibm278, ebcdic-sv, ibm-278, csIBM278] 
IBM280:[280, ibm-280, cp280, ibm280] 
IBM284:[cpibm284, csIBM284, ibm284, cp284, 284, ibm-284] 
IBM285:[ibm285, ebcdic-cp-gb, cpibm285, cp285, csIBM285, ebcdic-gb, 285, ibm-285] 
IBM297:[cp297, ibm297, 297, cpibm297, ebcdic-cp-fr, ibm-297, csIBM297] 
IBM420:[ibm420, cp420, 420, ibm-420, csIBM420, ebcdic-cp-ar1] 
IBM424:[csIBM424, ibm-424, ibm424, cp424, ebcdic-cp-he, 424] 
IBM437:[ibm-437, windows-437, cspc8codepage437, 437, ibm437, cp437] 
IBM500:[ibm-500, ebcdic-cp-bh, cp500, csIBM500, ibm500, ebcdic-cp-ch, 500] 
IBM775:[ibm-775, cp775, ibm775, 775] 
IBM850:[ibm-850, cp850, 850, cspc850multilingual, ibm850] 
IBM852:[ibm852, csPCp852, 852, ibm-852, cp852] 
IBM855:[cspcp855, 855, ibm855, ibm-855, cp855] 
IBM857:[csIBM857, 857, ibm-857, cp857, ibm857] 
IBM860:[860, cp860, ibm-860, csIBM860, ibm860] 
IBM861:[861, cp-is, ibm-861, cp861, csIBM861, ibm861] 
IBM862:[ibm-862, ibm862, csIBM862, cp862, cspc862latinhebrew, 862] 
IBM863:[ibm863, csIBM863, cp863, 863, ibm-863] 
IBM864:[csIBM864, ibm864, 864, cp864, ibm-864] 
IBM865:[csIBM865, ibm865, 865, ibm-865, cp865] 
IBM866:[866, ibm-866, ibm866, csIBM866, cp866] 
IBM868:[868, ibm-868, cp868, csIBM868, cp-ar, ibm868] 
IBM869:[869, ibm-869, cp869, csIBM869, cp-gr, ibm869] 
IBM870:[ibm-870, ebcdic-cp-roece, ebcdic-cp-yu, ibm870, csIBM870, cp870, 870] 
IBM871:[ibm-871, 871, ebcdic-cp-is, cp871, csIBM871, ibm871] 
IBM918:[cp918, ebcdic-cp-ar2, ibm-918, 918] 
ISO-2022-CN:[ISO2022CN, csISO2022CN] 
ISO-2022-JP:[jis_encoding, csjisencoding, jis, iso2022jp, csISO2022JP] 
ISO-2022-JP-2:[csISO2022JP2, iso2022jp2] 
ISO-2022-KR:[csISO2022KR, ISO2022KR] 
ISO-8859-1:[csISOLatin1, IBM-819, iso-ir-100, 8859_1, ISO_8859-1, l1, ISO8859-1, ISO_8859_1, cp819, ISO8859_1, latin1, ISO_8859-1:1987, 819, IBM819] 
ISO-8859-13:[8859_13, iso8859_13, iso_8859-13, ISO8859-13] 
ISO-8859-15:[IBM923, 8859_15, ISO_8859-15, ISO-8859-15, L9, ISO8859-15, ISO8859_15_FDIS, 923, LATIN0, csISOlatin9, LATIN9, csISOlatin0, IBM-923, ISO8859_15, cp923] 
ISO-8859-2:[iso-ir-101, csISOLatin2, ibm-912, 8859_2, l2, ISO_8859-2, ibm912, 912, ISO8859-2, latin2, iso8859_2, ISO_8859-2:1987, cp912] 
ISO-8859-3:[ibm-913, csISOLatin3, iso-ir-109, l3, 8859_3, ibm913, ISO_8859-3, ISO8859-3, 913, latin3, iso8859_3, ISO_8859-3:1988, cp913] 
ISO-8859-4:[iso-ir-110, iso8859-4, ibm914, ibm-914, l4, csISOLatin4, 914, 8859_4, latin4, ISO_8859-4, ISO_8859-4:1988, iso8859_4, cp914] 
ISO-8859-5:[cp915, ISO8859-5, ibm915, ISO_8859-5:1988, ibm-915, 8859_5, 915, cyrillic, iso8859_5, ISO_8859-5, iso-ir-144, csISOLatinCyrillic] 
ISO-8859-6:[arabic, ibm1089, iso8859_6, iso-ir-127, 8859_6, cp1089, ECMA-114, ISO_8859-6, csISOLatinArabic, ibm-1089, 1089, ISO8859-6, ASMO-708, ISO_8859-6:1987] 
ISO-8859-7:[iso8859-7, sun_eu_greek, csISOLatinGreek, 813, ISO_8859-7, ISO_8859-7:1987, ibm-813, greek, greek8, iso8859_7, ECMA-118, iso-ir-126, 8859_7, cp813, ibm813, ELOT_928] 
ISO-8859-8:[ibm916, cp916, csISOLatinHebrew, ISO_8859-8, ISO8859-8, ibm-916, iso8859_8, hebrew, 916, iso-ir-138, ISO_8859-8:1988, 8859_8] 
ISO-8859-9:[ISO_8859-9, 920, iso8859_9, csISOLatin5, l5, 8859_9, latin5, ibm920, iso-ir-148, ISO_8859-9:1989, ISO8859-9, cp920, ibm-920] 
JIS_X0201:[JIS0201, JIS_X0201, X0201, csHalfWidthKatakana] 
JIS_X0212-1990:[csISO159JISX02121990, x0212, jis_x0212-1990, iso-ir-159, JIS0212] 
KOI8-R:[cskoi8r, koi8_r, koi8] 
KOI8-U:[koi8_u] 
Shift_JIS:[x-sjis, shift_jis, sjis, ms_kanji, shift-jis, csShiftJIS] 
TIS-620:[tis620.2533, tis620] 
US-ASCII:[cp367, ascii7, ISO646-US, 646, csASCII, us, iso_646.irv:1983, ISO_646.irv:1991, IBM367, ASCII, default, ANSI_X3.4-1986, ANSI_X3.4-1968, iso-ir-6] 
UTF-16:[utf16, UTF_16, UnicodeBig, unicode] 
UTF-16BE:[X-UTF-16BE, UTF_16BE, ISO-10646-UCS-2, UnicodeBigUnmarked] 
UTF-16LE:[UnicodeLittleUnmarked, UTF_16LE, X-UTF-16LE] 
UTF-32:[UTF_32, UTF32] 
UTF-32BE:[X-UTF-32BE, UTF_32BE] 
UTF-32LE:[X-UTF-32LE, UTF_32LE] 
UTF-8:[UTF8, unicode-1-1-utf-8] 
windows-1250:[cp1250, cp5346] 
windows-1251:[ansi-1251, cp5347, cp1251] 
windows-1252:[cp1252, cp5348] 
windows-1253:[cp1253, cp5349] 
windows-1254:[cp1254, cp5350] 
windows-1255:[cp1255] 
windows-1256:[cp1256] 
windows-1257:[cp1257, cp5353] 
windows-1258:[cp1258] 
windows-31j:[csWindows31J, windows-932, MS932] 
x-Big5-Solaris:[Big5_Solaris] 
x-euc-jp-linux:[euc-jp-linux, euc_jp_linux] 
x-EUC-TW:[euc_tw, EUC-TW, cns11643, euctw] 
x-eucJP-Open:[EUC_JP_Solaris, eucJP-open] 
x-IBM1006:[cp1006, ibm-1006, ibm1006, 1006] 
x-IBM1025:[cp1025, ibm-1025, 1025, ibm1025] 
x-IBM1046:[ibm-1046, cp1046, ibm1046, 1046] 
x-IBM1097:[cp1097, 1097, ibm-1097, ibm1097] 
x-IBM1098:[ibm-1098, cp1098, ibm1098, 1098] 
x-IBM1112:[ibm-1112, 1112, ibm1112, cp1112] 
x-IBM1122:[cp1122, ibm-1122, 1122, ibm1122] 
x-IBM1123:[cp1123, ibm-1123, 1123, ibm1123] 
x-IBM1124:[cp1124, ibm-1124, 1124, ibm1124] 
x-IBM1381:[ibm1381, cp1381, ibm-1381, 1381] 
x-IBM1383:[cp1383, 1383, ibm1383, ibm-1383] 
x-IBM33722:[ibm33722, 33722, ibm-33722_vascii_vpua, ibm-5050, ibm-33722, cp33722] 
x-IBM737:[cp737, ibm-737, 737, ibm737] 
x-IBM834:[ibm834, ibm-834, cp834] 
x-IBM856:[856, cp856, ibm-856, ibm856] 
x-IBM874:[cp874, ibm874, 874, ibm-874] 
x-IBM875:[ibm875, 875, cp875, ibm-875] 
x-IBM921:[cp921, ibm921, ibm-921, 921] 
x-IBM922:[ibm922, ibm-922, cp922, 922] 
x-IBM930:[cp930, ibm930, ibm-930, 930] 
x-IBM933:[cp933, 933, ibm933, ibm-933] 
x-IBM935:[ibm935, cp935, 935, ibm-935] 
x-IBM937:[ibm-937, cp937, 937, ibm937] 
x-IBM939:[ibm-939, ibm939, cp939, 939] 
x-IBM942:[ibm-942, ibm942, cp942, 942] 
x-IBM942C:[942C, ibm942C, cp942C, ibm-942C] 
x-IBM943:[943, ibm-943, cp943, ibm943] 
x-IBM943C:[ibm-943C, 943C, cp943C, ibm943C] 
x-IBM948:[ibm948, ibm-948, cp948, 948] 
x-IBM949:[ibm949, ibm-949, 949, cp949] 
x-IBM949C:[cp949C, 949C, ibm-949C, ibm949C] 
x-IBM950:[950, ibm950, cp950, ibm-950] 
x-IBM964:[964, cp964, ibm-964, ibm964] 
x-IBM970:[970, ibm-970, ibm970, cp970, ibm-eucKR] 
x-ISCII91:[iso-ir-153, ST_SEV_358-88, ISCII91, iscii, csISO153GOST1976874] 
x-ISO-2022-CN-CNS:[ISO-2022-CN-CNS, ISO2022CN_CNS] 
x-ISO-2022-CN-GB:[ISO-2022-CN-GB, ISO2022CN_GB] 
x-iso-8859-11:[iso-8859-11, iso8859_11] 
x-JIS0208:[JIS_X0208-1983, x0208, JIS0208, JIS_C6226-1983, iso-ir-87, csISO87JISX0208] 
x-JISAutoDetect:[JISAutoDetect] 
x-Johab:[ksc5601_1992, ms1361, ksc5601-1992, johab] 
x-MacArabic:[MacArabic] 
x-MacCentralEurope:[MacCentralEurope] 
x-MacCroatian:[MacCroatian] 
x-MacCyrillic:[MacCyrillic] 
x-MacDingbat:[MacDingbat] 
x-MacGreek:[MacGreek] 
x-MacHebrew:[MacHebrew] 
x-MacIceland:[MacIceland] 
x-MacRoman:[MacRoman] 
x-MacRomania:[MacRomania] 
x-MacSymbol:[MacSymbol] 
x-MacThai:[MacThai] 
x-MacTurkish:[MacTurkish] 
x-MacUkraine:[MacUkraine] 
x-MS932_0213:[] 
x-MS950-HKSCS:[MS950_HKSCS] 
x-mswin-936:[ms936, ms_936] 
x-PCK:[pck] 
x-SJIS_0213:[] 
x-UTF-16LE-BOM:[UnicodeLittle] 
X-UTF-32BE-BOM:[UTF_32BE_BOM, UTF-32BE-BOM] 
X-UTF-32LE-BOM:[UTF_32LE_BOM, UTF-32LE-BOM] 
x-windows-50220:[cp50220, ms50220] 
x-windows-50221:[ms50221, cp50221] 
x-windows-874:[ms-874, ms874, windows-874] 
x-windows-949:[windows-949, ms_949, windows949, ms949] 
x-windows-950:[ms950, windows-950] 
x-windows-iso2022jp:[windows-iso2022jp] 

当前JVM运行时系统属性列表 
:awt.toolkit=sun.awt.windows.WToolkit 
file.encoding=GB18030 
file.encoding.pkg=sun.io 
file.separator=\ 
idea.launcher.bin.path=D:\IDEA813\bin 
idea.launcher.port=7532 
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment 
java.awt.printerjob=sun.awt.windows.WPrinterJob 
java.class.path=F:\jdk1.6.0_16\jre\lib\alt-rt.jar;F:\jdk1.6.0_16\jre\lib\charsets.jar;F:\jdk1.6.0_16\jre\lib\deploy.jar;F:\jdk1.6.0_16\jre\lib\javaws.jar;F:\jdk1.6.0_16\jre\lib\jce.jar;F:\jdk1.6.0_16\jre\lib\jsse.jar;F:\jdk1.6.0_16\jre\lib\management-agent.jar;F:\jdk1.6.0_16\jre\lib\plugin.jar;F:\jdk1.6.0_16\jre\lib\resources.jar;F:\jdk1.6.0_16\jre\lib\rt.jar;F:\jdk1.6.0_16\jre\lib\ext\dnsns.jar;F:\jdk1.6.0_16\jre\lib\ext\localedata.jar;F:\jdk1.6.0_16\jre\lib\ext\sunjce_provider.jar;F:\jdk1.6.0_16\jre\lib\ext\sunmscapi.jar;F:\jdk1.6.0_16\jre\lib\ext\sunpkcs11.jar;D:\new\charset\out\production\charset;D:\IDEA813\lib\idea_rt.jar 
java.class.version=50.0 
java.endorsed.dirs=F:\jdk1.6.0_16\jre\lib\endorsed 
java.ext.dirs=F:\jdk1.6.0_16\jre\lib\ext;C:\WINDOWS\Sun\Java\lib\ext 
java.home=F:\jdk1.6.0_16\jre 
java.io.tmpdir=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ 
java.library.path=F:\jdk1.6.0_16\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem 
java.runtime.name=Java(TM) SE Runtime Environment 
java.runtime.version=1.6.0_16-b01 
java.specification.name=Java Platform API Specification 
java.specification.vendor=Sun Microsystems Inc. 
java.specification.version=1.6 
java.vendor=Sun Microsystems Inc. 
java.vendor.url=http://java.sun.com/ 
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi 
java.version=1.6.0_16 
java.vm.info=mixed mode, sharing 
java.vm.name=Java HotSpot(TM) Client VM 
java.vm.specification.name=Java Virtual Machine Specification 
java.vm.specification.vendor=Sun Microsystems Inc. 
java.vm.specification.version=1.0 
java.vm.vendor=Sun Microsystems Inc. 
java.vm.version=14.2-b01 
line.separator= 

os.arch=x86 
os.name=Windows XP 
os.version=5.1 
path.separator=; 
sun.arch.data.model=32 
sun.boot.class.path=F:\jdk1.6.0_16\jre\lib\resources.jar;F:\jdk1.6.0_16\jre\lib\rt.jar;F:\jdk1.6.0_16\jre\lib\sunrsasign.jar;F:\jdk1.6.0_16\jre\lib\jsse.jar;F:\jdk1.6.0_16\jre\lib\jce.jar;F:\jdk1.6.0_16\jre\lib\charsets.jar;F:\jdk1.6.0_16\jre\classes 
sun.boot.library.path=F:\jdk1.6.0_16\jre\bin 
sun.cpu.endian=little 
sun.cpu.isalist= 
sun.desktop=windows 
sun.io.unicode.encoding=UnicodeLittle 
sun.java.launcher=SUN_STANDARD 
sun.jnu.encoding=GBK 
sun.management.compiler=HotSpot Client Compiler 
sun.os.patch.level=Service Pack 3 
user.country=CN 
user.dir=D:\new\charset 
user.home=d:\我的文档 
user.language=zh 
user.name=Administrator 
user.timezone= 
user.variant= 


Process finished with exit code 0
 
另外,明确一点,谈到JRE和JVM,一般都应该考虑到运行时的状况,同样的代码,在你机器上显示和我的不一定一样,甚至很难一样,都很正常。


本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/235937,如需转载请自行联系原作者