黑马软件工程师-java系统相关类
黑马程序员-java系统相关类
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
Java程序在不同操作系统上运行时,要取的平台相关的属性,或者通过一些平台命令来完成一些功能,Java 中的System类和Runtime类来与运行的平台交互。
相信在学毕老师视频的同学对这段代码很熟悉:
import java.util.*; public class SystemDemo { public static void main(String[] args) { Properties prop=System.getProperties();//确定当前的系统属性。 // Set<K> keySet() 返回此映射中包含的键的 Set 视图。 // V get(Object key) 返回指定键所映射到的值 //Properties是Hashtable的子类,也就是Map集合的一个子类对象 //可以通过map的方法取出该集合的元素 // System.setProperty("myKey","myValue");//在系统中自定义一些特有信息 // String getvalue=System.getProperty("java.runtime.version");//获取指定属性信息(java运行的版本) // System.out.println("Value="+getvalue); for(Object obj:prop.keySet()) { String value=(String)prop.get(obj); System.out.println(obj+"-------:"+value); } } }
运行结果 写道
java.runtime.name-------:Java(TM) SE Runtime Environment
sun.boot.library.path-------:D:\TDDOWNLOAD\java\jre\bin
java.vm.version-------:20.0-b01
java.vm.vendor-------:Sun Microsystems Inc.
java.vendor.url-------:http://java.sun.com/
path.separator-------:;
java.vm.name-------:Java HotSpot(TM) Client VM
file.encoding.pkg-------:sun.io
user.country-------:CN
sun.java.launcher-------:SUN_STANDARD
sun.os.patch.level-------:
java.vm.specification.name-------:Java Virtual Machine Specification
user.dir-------:D:\TDDOWNLOAD\javawork\System,Math,Runtime对象\SystemDemo
java.runtime.version-------:1.7.0-ea-b113
java.awt.graphicsenv-------:sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs-------:D:\TDDOWNLOAD\java\jre\lib\endorsed
os.arch-------:x86
java.io.tmpdir-------:C:\Users\ADMINI~1\AppData\Local\Temp\
line.separator-------:
java.vm.specification.vendor-------:Sun Microsystems Inc.
user.variant-------:
os.name-------:Windows 7
sun.jnu.encoding-------:GBK
java.library.path-------:D:\TDDOWNLOAD\java\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;E:\Win7系统封装资料\[3]优化及设置\Windows7优化大师 V1.66 绿色版\;D:\TDDOWNLOAD\java\bin;
java.specification.name-------:Java Platform API Specification
java.class.version-------:51.0
sun.management.compiler-------:HotSpot Client Compiler
os.version-------:6.1
user.home-------:C:\Users\Administrator
user.timezone-------:
java.awt.printerjob-------:sun.awt.windows.WPrinterJob
file.encoding-------:GBK
java.specification.version-------:1.7
java.class.path-------:D:\TDDOWNLOAD\javawork\System,Math,Runtime对象\SystemDemo;D:\TDDOWNLOAD\java\jre\lib\rt.jar;D:\TDDOWNLOAD\java\lib\dt.jar;D:\TDDOWNLOAD\java\lib\tools.jar;D:\TDDOWNLOAD\java\jre\lib\ext\dnsns.jar;D:\TDDOWNLOAD\java\jre\lib\ext\sunec.jar;D:\TDDOWNLOAD\java\jre\lib\ext\sunjce_provider.jar;D:\TDDOWNLOAD\java\jre\lib\ext\sunmscapi.jar;D:\TDDOWNLOAD\java\jre\lib\ext\sunpkcs11.jar;D:\TDDOWNLOAD\java\jre\lib\ext\localedata.jar
user.name-------:Administrator
java.vm.specification.version-------:1.0
java.home-------:D:\TDDOWNLOAD\java\jre
sun.arch.data.model-------:32
user.language-------:zh
java.specification.vendor-------:Sun Microsystems Inc.
awt.toolkit-------:sun.awt.windows.WToolkit
java.vm.info-------:mixed mode, sharing
java.version-------:1.7.0-ea
java.ext.dirs-------:D:\TDDOWNLOAD\java\jre\lib\ext;C:\Windows\Sun\Java\lib\ext
sun.boot.class.path-------:D:\TDDOWNLOAD\java\jre\lib\resources.jar;D:\TDDOWNLOAD\java\jre\lib\rt.jar;D:\TDDOWNLOAD\java\jre\lib\sunrsasign.jar;D:\TDDOWNLOAD\java\jre\lib\jsse.jar;D:\TDDOWNLOAD\java\jre\lib\jce.jar;D:\TDDOWNLOAD\java\jre\lib\charsets.jar;D:\TDDOWNLOAD\java\jre\lib\modules\jdk.boot.jar;D:\TDDOWNLOAD\java\jre\classes
java.vendor-------:Sun Microsystems Inc.
file.separator-------:\
java.vendor.url.bug-------:http://java.sun.com/cgi-bin/bugreport.cgi
sun.io.unicode.encoding-------:UnicodeLittle
sun.cpu.endian-------:little
sun.desktop-------:windows
sun.cpu.isalist-------:pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86
sun.boot.library.path-------:D:\TDDOWNLOAD\java\jre\bin
java.vm.version-------:20.0-b01
java.vm.vendor-------:Sun Microsystems Inc.
java.vendor.url-------:http://java.sun.com/
path.separator-------:;
java.vm.name-------:Java HotSpot(TM) Client VM
file.encoding.pkg-------:sun.io
user.country-------:CN
sun.java.launcher-------:SUN_STANDARD
sun.os.patch.level-------:
java.vm.specification.name-------:Java Virtual Machine Specification
user.dir-------:D:\TDDOWNLOAD\javawork\System,Math,Runtime对象\SystemDemo
java.runtime.version-------:1.7.0-ea-b113
java.awt.graphicsenv-------:sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs-------:D:\TDDOWNLOAD\java\jre\lib\endorsed
os.arch-------:x86
java.io.tmpdir-------:C:\Users\ADMINI~1\AppData\Local\Temp\
line.separator-------:
java.vm.specification.vendor-------:Sun Microsystems Inc.
user.variant-------:
os.name-------:Windows 7
sun.jnu.encoding-------:GBK
java.library.path-------:D:\TDDOWNLOAD\java\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;E:\Win7系统封装资料\[3]优化及设置\Windows7优化大师 V1.66 绿色版\;D:\TDDOWNLOAD\java\bin;
java.specification.name-------:Java Platform API Specification
java.class.version-------:51.0
sun.management.compiler-------:HotSpot Client Compiler
os.version-------:6.1
user.home-------:C:\Users\Administrator
user.timezone-------:
java.awt.printerjob-------:sun.awt.windows.WPrinterJob
file.encoding-------:GBK
java.specification.version-------:1.7
java.class.path-------:D:\TDDOWNLOAD\javawork\System,Math,Runtime对象\SystemDemo;D:\TDDOWNLOAD\java\jre\lib\rt.jar;D:\TDDOWNLOAD\java\lib\dt.jar;D:\TDDOWNLOAD\java\lib\tools.jar;D:\TDDOWNLOAD\java\jre\lib\ext\dnsns.jar;D:\TDDOWNLOAD\java\jre\lib\ext\sunec.jar;D:\TDDOWNLOAD\java\jre\lib\ext\sunjce_provider.jar;D:\TDDOWNLOAD\java\jre\lib\ext\sunmscapi.jar;D:\TDDOWNLOAD\java\jre\lib\ext\sunpkcs11.jar;D:\TDDOWNLOAD\java\jre\lib\ext\localedata.jar
user.name-------:Administrator
java.vm.specification.version-------:1.0
java.home-------:D:\TDDOWNLOAD\java\jre
sun.arch.data.model-------:32
user.language-------:zh
java.specification.vendor-------:Sun Microsystems Inc.
awt.toolkit-------:sun.awt.windows.WToolkit
java.vm.info-------:mixed mode, sharing
java.version-------:1.7.0-ea
java.ext.dirs-------:D:\TDDOWNLOAD\java\jre\lib\ext;C:\Windows\Sun\Java\lib\ext
sun.boot.class.path-------:D:\TDDOWNLOAD\java\jre\lib\resources.jar;D:\TDDOWNLOAD\java\jre\lib\rt.jar;D:\TDDOWNLOAD\java\jre\lib\sunrsasign.jar;D:\TDDOWNLOAD\java\jre\lib\jsse.jar;D:\TDDOWNLOAD\java\jre\lib\jce.jar;D:\TDDOWNLOAD\java\jre\lib\charsets.jar;D:\TDDOWNLOAD\java\jre\lib\modules\jdk.boot.jar;D:\TDDOWNLOAD\java\jre\classes
java.vendor-------:Sun Microsystems Inc.
file.separator-------:\
java.vendor.url.bug-------:http://java.sun.com/cgi-bin/bugreport.cgi
sun.io.unicode.encoding-------:UnicodeLittle
sun.cpu.endian-------:little
sun.desktop-------:windows
sun.cpu.isalist-------:pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86
其中一些系统属性我们很熟悉,System类还提供获取系统所有环境变量的方法,System.getenv()看下系统变量和系统属性有什么不同,供黑马的学员对比学习一下。
import java.util.*; public class TestSystem { public static void main(String[] args) { Map<String,String> env=System.getenv();//获取系统所有的环境变量 for(String name:env.keySet()) { System.out.println(name+"---------->"+env.get(name)); } } }
运行结果对比: 写道
--------------------配置: <默认>--------------------
USERPROFILE---------->C:\Users\Administrator
ProgramData---------->C:\ProgramData
PATHEXT---------->.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
JAVA_HOME---------->D:\TDDOWNLOAD\java\
TEMP---------->C:\Users\ADMINI~1\AppData\Local\Temp
SystemDrive---------->C:
ProgramFiles---------->C:\Program Files
Path---------->C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;E:\Win7系统封装资料\[3]优化及设置\Windows7优化大师 V1.66 绿色版\;D:\TDDOWNLOAD\java\bin;
HOMEDRIVE---------->C:
PROCESSOR_REVISION---------->170a
=C:---------->C:\Program Files\JCreator Pro\CodeSnippets
_DFX_INSTALL_UNSIGNED_DRIVER---------->1
USERDOMAIN---------->PC-20111018DMXJ
ALLUSERSPROFILE---------->C:\ProgramData
DEVMGR_SHOW_DETAILS---------->1
PROCESSOR_IDENTIFIER---------->x86 Family 6 Model 23 Stepping 10, GenuineIntel
SESSIONNAME---------->Console
TMP---------->C:\Users\ADMINI~1\AppData\Local\Temp
CommonProgramFiles---------->C:\Program Files\Common Files
=::---------->::\
LOGONSERVER---------->\\PC-20111018DMXJ
PROCESSOR_ARCHITECTURE---------->x86
FP_NO_HOST_CHECK---------->NO
OS---------->Windows_NT
HOMEPATH---------->\Users\Administrator
PROCESSOR_LEVEL---------->6
1830B7BD-F7A3-4c4d-989B-C004DE465EDE---------->c4:f71da8
=D:---------->D:\TDDOWNLOAD\javawork\System,Math,Runtime对象
LOCALAPPDATA---------->C:\Users\Administrator\AppData\Local
COMPUTERNAME---------->PC-20111018DMXJ
windir---------->C:\Windows
SystemRoot---------->C:\Windows
NUMBER_OF_PROCESSORS---------->2
USERNAME---------->Administrator
PUBLIC---------->C:\Users\Public
PSModulePath---------->C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
ComSpec---------->C:\Windows\system32\cmd.exe
APPDATA---------->C:\Users\Administrator\AppData\Roaming
处理已完成。
USERPROFILE---------->C:\Users\Administrator
ProgramData---------->C:\ProgramData
PATHEXT---------->.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
JAVA_HOME---------->D:\TDDOWNLOAD\java\
TEMP---------->C:\Users\ADMINI~1\AppData\Local\Temp
SystemDrive---------->C:
ProgramFiles---------->C:\Program Files
Path---------->C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;E:\Win7系统封装资料\[3]优化及设置\Windows7优化大师 V1.66 绿色版\;D:\TDDOWNLOAD\java\bin;
HOMEDRIVE---------->C:
PROCESSOR_REVISION---------->170a
=C:---------->C:\Program Files\JCreator Pro\CodeSnippets
_DFX_INSTALL_UNSIGNED_DRIVER---------->1
USERDOMAIN---------->PC-20111018DMXJ
ALLUSERSPROFILE---------->C:\ProgramData
DEVMGR_SHOW_DETAILS---------->1
PROCESSOR_IDENTIFIER---------->x86 Family 6 Model 23 Stepping 10, GenuineIntel
SESSIONNAME---------->Console
TMP---------->C:\Users\ADMINI~1\AppData\Local\Temp
CommonProgramFiles---------->C:\Program Files\Common Files
=::---------->::\
LOGONSERVER---------->\\PC-20111018DMXJ
PROCESSOR_ARCHITECTURE---------->x86
FP_NO_HOST_CHECK---------->NO
OS---------->Windows_NT
HOMEPATH---------->\Users\Administrator
PROCESSOR_LEVEL---------->6
1830B7BD-F7A3-4c4d-989B-C004DE465EDE---------->c4:f71da8
=D:---------->D:\TDDOWNLOAD\javawork\System,Math,Runtime对象
LOCALAPPDATA---------->C:\Users\Administrator\AppData\Local
COMPUTERNAME---------->PC-20111018DMXJ
windir---------->C:\Windows
SystemRoot---------->C:\Windows
NUMBER_OF_PROCESSORS---------->2
USERNAME---------->Administrator
PUBLIC---------->C:\Users\Public
PSModulePath---------->C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
ComSpec---------->C:\Windows\system32\cmd.exe
APPDATA---------->C:\Users\Administrator\AppData\Roaming
处理已完成。
Runtime类
Runtime类代表java程序的运行环境,每个Java程序都有一个与之对应的Runtime实例,通过该对象与运行环境相连
可以访问JVM的相关信息,如处理器数量(我的机子是双核的,数量为2),内存信息等
public class RuntimeDemo { public static void main(String[] args) throws Exception { Runtime rt=Runtime.getRuntime(); System.out.println("总内存数:"+rt.totalMemory()); System.out.println("处理器数量:"+rt.availableProcessors()); rt.exec("notepad.exe");//运行记事本程序 } }
这里直接启动一条进程来运行操作系统命令
java还提供了一些常用类,如:String、Math等,在此不赘述了。
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------