java获取系统信息_关于Java获取系统信息

一 .获取系统相关参数

java 通过System.getProperties()获取系统参数

Properties props=System.getProperties(); //系统属性

1 public classSystemInfo {2 public static voidmain(String[] args) {3 Properties sysProperty=System.getProperties(); //系统属性

4 Set keySet =sysProperty.keySet();5 for(Object object : keySet) {6 String property =sysProperty.getProperty(object.toString());7 System.out.println(object.toString()+" : "+property);8 }9 }10 }

汉语英语一一对应

1 public classSystemInfo {2 public static voidmain(String[] args) {3 System.out.println("Java的运行环境版本:"+sysProperty.getProperty("java.version"));4 System.out.println("Java的运行环境供应商:"+sysProperty.getProperty("java.vendor"));5 System.out.println("Java供应商的URL:"+sysProperty.getProperty("java.vendor.url"));6 System.out.println("Java的安装路径:"+sysProperty.getProperty("java.home"));7 System.out.println("Java的虚拟机规范版本:"+sysProperty.getProperty("java.vm.specification.version"));8 System.out.println("Java的虚拟机规范供应商:"+sysProperty.getProperty("java.vm.specification.vendor"));9 System.out.println("Java的虚拟机规范名称:"+sysProperty.getProperty("java.vm.specification.name"));10 System.out.println("Java的虚拟机实现版本:"+sysProperty.getProperty("java.vm.version"));11 System.out.println("Java的虚拟机实现供应商:"+sysProperty.getProperty("java.vm.vendor"));12 System.out.println("Java的虚拟机实现名称:"+sysProperty.getProperty("java.vm.name"));13 System.out.println("Java运行时环境规范版本:"+sysProperty.getProperty("java.specification.version"));14 System.out.println("Java运行时环境规范供应商:"+sysProperty.getProperty("java.specification.vender"));15 System.out.println("Java运行时环境规范名称:"+sysProperty.getProperty("java.specification.name"));16 System.out.println("Java的类格式版本号:"+sysProperty.getProperty("java.class.version"));17 System.out.println("Java的类路径:"+sysProperty.getProperty("java.class.path"));18 System.out.println("加载库时搜索的路径列表:"+sysProperty.getProperty("java.library.path"));19 System.out.println("默认的临时文件路径:"+sysProperty.getProperty("java.io.tmpdir"));20 System.out.println("一个或多个扩展目录的路径:"+sysProperty.getProperty("java.ext.dirs"));21 System.out.println("操作系统的名称:"+sysProperty.getProperty("os.name"));22 System.out.println("操作系统的构架:"+sysProperty.getProperty("os.arch"));23 System.out.println("操作系统的版本:"+sysProperty.getProperty("os.version"));24 System.out.println("文件分隔符:"+sysProperty.getProperty("file.separator")); //在 unix 系统中是"/"

25 System.out.println("路径分隔符:"+sysProperty.getProperty("path.separator")); //在 unix 系统中是":"

26 System.out.println("行分隔符:"+sysProperty.getProperty("line.separator")); //在 unix 系统中是"/n"

27 System.out.println("用户的账户名称:"+sysProperty.getProperty("user.name"));28 System.out.println("用户的主目录:"+sysProperty.getProperty("user.home"));29 System.out.println("用户的当前工作目录:"+sysProperty.getProperty("user.dir"));30 }31 }

二、获取系统环境变量

Map getenv = System.getenv();

Map getenv =System.getenv();

System.out.println(getenv);

输出:

{USERPROFILE=C:\Users\kongxiaohan,

ProgramData=C:\ProgramData,

PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC,

windows_tracing_logfile=C:\BVTBin\Tests\installpackage\csilogfile.log,

JAVA_HOME=C:\Program Files\Java\jdk1.7.0_65,

MAVEN_HOME=D:\apache-maven-3.0.5, windows_tracing_flags=3,

TEMP=C:\Users\KONGXI~1\AppData\Local\Temp,

SystemDrive=C:, ProgramFiles=C:\Program Files,

Path=C:/Program Files/Java/jdk1.7.0_65/bin/../jre/bin/client;

C:/Program Files/Java/jdk1.7.0_65/bin/../jre/bin;

C:/Program Files/Java/jdk1.7.0_65/bin/../jre/lib/i386;

C:\Program Files\NVIDIA Corporation\PhysX\Common;

C:\Program Files\Java\jdk1.7.0_65\bin;

C:\Windows\system32;C:\Windows;

C:\Windows\System32\Wbem;

C:\Windows\System32\WindowsPowerShell\v1.0\;

C:\Program Files\EmEditor;

D:\Program Files\MySQL\MySQL Server5.5\bin;

D:\Program Files\Subversion\bin;

D:\Program Files\TortoiseSVN\bin;

D:\ITCAST\java\day72_NoSql系列之mongoDB数据库\mongodb-win32-i386-2.4.3\bin;

E:\insta;tclient_12_1;

D:\apache-maven-3.0.5\bin;

C:\Program Files\VanDyke Software\Clients\;

G:\eclipse;, HOMEDRIVE=C:, PROCESSOR_REVISION=2502, USERDOMAIN=PC-ACER, ALLUSERSPROFILE=C:\ProgramData, VBOX_INSTALL_PATH=C:\Program Files\Oracle\VirtualBox\, PROCESSOR_IDENTIFIER=x86 Family 6 Model 37 Stepping 2, GenuineIntel, SESSIONNAME=Console, TMP=C:\Users\KONGXI~1\AppData\Local\Temp, CommonProgramFiles=C:\Program Files\Common Files, =::=::\, LOGONSERVER=\\PC-ACER, PROCESSOR_ARCHITECTURE=x86, FP_NO_HOST_CHECK=NO, OS=Windows_NT, HOMEPATH=\Users\kongxiaohan, PROCESSOR_LEVEL=6, APR_ICONV_PATH=D:\Program Files\Subversion\iconv, LOCALAPPDATA=C:\Users\kongxiaohan\AppData\Local, COMPUTERNAME=PC-ACER, windir=C:\Windows, SystemRoot=C:\Windows, NUMBER_OF_PROCESSORS=4, USERNAME=kongxiaohan, PUBLIC=C:\Users\Public, PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\, NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK, LANG=zh_CN, ComSpec=C:\Windows\system32\cmd.exe, APPDATA=C:\Users\kongxiaohan\AppData\Roaming}

三、获取IP、 计算机名、MAC、 硬盘卷序号

SystemInfo.java

1 importjava.io.BufferedReader;2 importjava.io.IOException;3 importjava.io.InputStreamReader;4 importjava.net.InetAddress;5 importjava.net.NetworkInterface;6 importjava.net.SocketException;7 importjava.net.UnknownHostException;8 importjava.util.Properties;9

10 /**

11 * 获取当前系统信息12 */

13 public classSystemInfo {14 //当前实例

15 private static SystemInfo currentSystem = null;16 private InetAddress localHost = null;17

18 privateSystemInfo() {19 try{20 localHost =InetAddress.getLocalHost();21 } catch(UnknownHostException e) {22 //TODO Auto-generated catch block

23 e.printStackTrace();24 }25 }26

27 /**

28 * 单例模式获取对象29 *30 *@return

31 */

32 public staticSystemInfo getInstance() {33 if (currentSystem == null)34 currentSystem = newSystemInfo();35 returncurrentSystem;36 }37

38 /**

39 * 本地IP40 *41 *@returnIP地址42 */

43 publicString getIP() {44 String ip =localHost.getHostAddress();45 returnip;46 }47

48 /**

49 * 获取用户机器名称50 *51 *@return

52 */

53 publicString getHostName() {54 returnlocalHost.getHostName();55 }56

57 /**

58 * 获取C盘卷 序列号59 *60 *@return

61 */

62 publicString getDiskNumber() {63 String line = "";64 String HdSerial = "";//记录硬盘序列号

65

66 try{67

68 Process proces = Runtime.getRuntime().exec("cmd /c dir c:");//获取命令行参数

69 BufferedReader buffreader = newBufferedReader(70 newInputStreamReader(proces.getInputStream()));71

72 while ((line = buffreader.readLine()) != null) {73

74 if (line.indexOf("卷的序列号是 ") != -1) { //读取参数并获取硬盘序列号

75

76 HdSerial = line.substring(line.indexOf("卷的序列号是 ")77 + "卷的序列号是 ".length(), line.length());78 break;79 }80 }81

82 } catch(IOException e) {83 //TODO Auto-generated catch block

84 e.printStackTrace();85 }86

87 returnHdSerial;88 }89

90 /**

91 * 获取Mac地址92 *93 *@returnMac地址,例如:F0-4D-A2-39-24-A694 */

95 publicString getMac() {96 NetworkInterface byInetAddress;97 try{98 byInetAddress =NetworkInterface.getByInetAddress(localHost);99 byte[] hardwareAddress =byInetAddress.getHardwareAddress();100 returngetMacFromBytes(hardwareAddress);101 } catch(SocketException e) {102 //TODO Auto-generated catch block

103 e.printStackTrace();104 }105 return null;106 }107

108 /**

109 * 获取当前系统名称110 *111 *@return当前系统名,例如: windows xp112 */

113 publicString getSystemName() {114 Properties sysProperty =System.getProperties();115 //系统名称

116 String systemName = sysProperty.getProperty("os.name");117 returnsystemName;118 }119

120 private String getMacFromBytes(byte[] bytes) {121 StringBuffer mac = newStringBuffer();122 bytecurrentByte;123 boolean first = false;124 for (byteb : bytes) {125 if(first) {126 mac.append("-");127 }128 currentByte = (byte) ((b & 240) >> 4);129 mac.append(Integer.toHexString(currentByte));130 currentByte = (byte) (b & 15);131 mac.append(Integer.toHexString(currentByte));132 first = true;133 }134 returnmac.toString().toUpperCase();135 }136 }

SystemInfoTest.java

1 public classSystemInfoTest {2 public static voidmain(String[] args) {3 SystemInfo syso =SystemInfo.getInstance();4 System.out.println("IP地址:"+syso.getIP());5 System.out.println("主机名称:"+syso.getHostName());6 System.out.println("获取C盘卷 序列号"+syso.getDiskNumber());7 System.out.println("Mac地址"+syso.getMac());8 System.out.println("获取当前系统名称"+syso. getSystemName());9 }10 }

输出结果:

IP地址:169.254.247.195主机名称:pc-acer

获取C盘卷 序列号A0E7-407C

Mac地址08-00-27-00-90-35获取当前系统名称Windows7

//================================================================================

关于获取文件编码相关的属性值:

1 importjava.nio.charset.Charset;2

3 public classGetDefaultCharset {4 public static voidmain(String[] args) {5 //获取系统默认编码

6 System.out.println(System.getProperty("file.encoding"));7

8 //获取系统默认的字符编码

9 System.out.println(Charset.defaultCharset());10

11 //获取系统默认语言

12 System.out.println(System.getProperty("user.language"));13

14 //获取系统属性列表

15 System.getProperties().list(System.out);16

17 //设置编码

18 System.getProperties().put("file.encoding", "GBK");19 }20 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值