环境变量这个概念不陌生, 就是操作系统的环境变量。
系统变量就是java本身维护的变量。 通过 system.getproperty 的方式获取。
对于不同的操作系统来说, 环境变量的处理可能会有一些不统一的地方, 比如说: 不区分大小写 等等。
java 获取环境变量
java 获取环境变量的方式很简单:
system.getenv() 得到所有的环境变量
system.getenv(key) 得到某个环境变量的值
map map = system.getenv(); iterator it = map.entryset().iterator(); while(it.hasnext()) { entry entry = (entry)it.next(); system.out.print(entry.getkey()+"="); system.out.println(entry.getvalue()); }
如果是windows 系统, 打印出来的值通过从 “我的电脑” 里看到的环境变量是一样的。
java 获取和设置系统变量
java 获取环境变量的方式也很简单:
system.getproperties() 得到所有的系统变量
system.getproperty(key) 得到某个系统变量的值
properties properties = system.getproperties(); iterator it = properties.entryset().iterator(); while(it.hasnext()) { entry entry = (entry)it.next(); system.out.print(entry.getkey()+"="); system.out.println(entry.getvalue()); }
系统变量除了可以获取之外, 还可以通过system.setproperty(key, value) 的方式设置自己需要的系统变量。
默认情况下, java 设置了哪些系统变量:
补充
1 . 在.bat ; .cmd 或 .sh 中会通过 set 的方式设置一些变量,
比如weblogic 的 setdomainenv.cmd
set sun_java_home=c:\oracle\middleware\jdk160_21
这里设置的是环境变量
2. 在log4j 的配置中, 有时会配置log file 的产生路径。
比如 ${log_dir}/logfile.log, 这里的log_dir 是被系统属性的变量替换的。
3. 看一下java 源码, 通过 system.getproperties() 的方式获取系统变量时, 会有一个安全的检查
public static properties getproperties() { securitymanager sm = getsecuritymanager(); if (sm != null) { sm.checkpropertiesaccess(); } return props; }
在 单个java application 测试时, system 里的securitymanager 是空的。
在applet 运行时, 会结合 .policy 这个文件来检查权限。
如果给一个空的securitymanager 会发现就会抛出权限异常。
public static void main(string[] args) { // todo auto-generated method stub system.setsecuritymanager(new securitymanager()); //securitymanager sm = system.getsecuritymanager(); //system.out.println(sm); system.getsecuritymanager().checkpropertiesaccess(); }
public static void main(string [] args) { map m = system.getenv(); for ( iterator it = m.keyset().iterator(); it.hasnext(); ) { string key = (string ) it.next(); string value = (string ) m.get(key); system.out.println(key +":" +value); } system.out.println( "--------------------------------------" ); properties p = system.getproperties(); for ( iterator it = p.keyset().iterator(); it.hasnext(); ) { string key = (string ) it.next(); string value = (string ) p.get(key); system.out.println(key +":" +value); } }
ant_home:d:/program/devel/ant processor_architecture:x86 logonserver://rj-weijianjun homedrive:c: catalina_home:d:/program/server/tomcat5.5 dxsdk_dir:d:/program files/microsoft directx sdk (august 2008)/ vs80comntools:c:/program files/microsoft visual studio 8/common7/tools/ sessionname:console homepath:/documents and settings/administrator tmp:c:/docume~1/admini~1/locals~1/temp windir:c:/windows processor_identifier:x86 family 6 model 15 stepping 13, genuineintel vs90comntools:e:/program files/microsoft visual studio 9.0/common7/tools/ systemdrive:c: userprofile:c:/documents and settings/administrator pathext:.com;.exe;.bat;.cmd;.vbs;.vbe;.js;.jse;.wsf;.wsh commonprogramfiles:c:/program files/common files number_of_processors:2 comspec:c:/windows/system32/cmd.exe computername:rj-weijianjun os:windows_nt username:administrator clientname:console temp:c:/docume~1/admini~1/locals~1/temp userdomain:rj-weijianjun allusersprofile:c:/documents and settings/all users lib:c:/program files/sqlxml 4.0/bin/ processor_level:6 systemroot:c:/windows clusterlog:c:/windows/cluster/cluster.log appdata:c:/documents and settings/administrator/application data path:c:/windows/system32;c:/windows;c:/windows/system32/wbem;c:/program files/microsoft sql server/80/tools/binn/;c:/program files/microsoft sql server/90/dts/binn/;c:/program files/microsoft sql server/90/tools/binn/;c:/program files/microsoft sql server/90/tools/binn/vsshell/common7/ide/;c:/program files/microsoft visual studio 8/common7/ide/privateassemblies/;d:/program/devel/flex_sdk2/bin;d:/program/devel/ant/bin;c:/program files/java/jdk1.6.0_07/bin;%jonas_root%/bin/nt;d:/program/devel/ant/bin java_home:c:/program files/java/jdk1.6.0_07 fp_no_host_check:no processor_revision:0f0d programfiles:c:/program files
-------------------------------------- java.runtime.name:java(tm) 2 runtime environment, standard edition sun.boot.library.path:d:/program files/myeclipse 6.5/jre/bin java.vm.version:1.5.0_11-b03 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 sun.java.launcher:sun_standard user.country:cn sun.os.patch.level:service pack 2 java.vm.specification.name:java virtual machine specification user.dir:d:/dev/eclipse/mye65/workspace/jmx java.runtime.version:1.5.0_11-b03 java.awt.graphicsenv:sun.awt.win32graphicsenvironment java.endorsed.dirs:d:/program files/myeclipse 6.5/jre/lib/endorsed os.arch:x86 java.io.tmpdir:c:/docume~1/admini~1/locals~1/temp/ line.separator: java.vm.specification.vendor:sun microsystems inc. user.variant: os.name:windows 2003 sun.jnu.encoding:gbk java.library.path:d:/program files/myeclipse 6.5/jre/bin;.;c:/windows/system32;c:/windows;c:/windows/system32;c:/windows;c:/windows/system32/wbem;c:/program files/microsoft sql server/80/tools/binn/;c:/program files/microsoft sql server/90/dts/binn/;c:/program files/microsoft sql server/90/tools/binn/;c:/program files/microsoft sql server/90/tools/binn/vsshell/common7/ide/;c:/program files/microsoft visual studio 8/common7/ide/privateassemblies/;d:/program/devel/flex_sdk2/bin;d:/program/devel/ant/bin;c:/program files/java/jdk1.6.0_07/bin;%jonas_root%/bin/nt;d:/program/devel/ant/bin java.specification.name:java platform api specification java.class.version:49.0 sun.management.compiler:hotspot client compiler os.version:5.2 user.home:c:/documents and settings/administrator user.timezone:asia/shanghai java.awt.printerjob:sun.awt.windows.wprinterjob file.encoding:gbk java.specification.version:1.5 java.class.path:d:/dev/eclipse/mye65/workspace/jmx/bin;d:/program/lib/jmx/jmxtools.jar;d:/program/lib/log/commons-logging-1.1.1.jar;d:/program/lib/log/log4j-1.2.15.jar;d:/program/lib/registry/registry.jar user.name:administrator java.vm.specification.version:1.0 java.home:d:/program files/myeclipse 6.5/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 java.version:1.5.0_11 java.ext.dirs:d:/program files/myeclipse 6.5/jre/lib/ext sun.boot.class.path:d:/program files/myeclipse 6.5/jre/lib/rt.jar;d:/program files/myeclipse 6.5/jre/lib/i18n.jar;d:/program files/myeclipse 6.5/jre/lib/sunrsasign.jar;d:/program files/myeclipse 6.5/jre/lib/jsse.jar;d:/program files/myeclipse 6.5/jre/lib/jce.jar;d:/program files/myeclipse 6.5/jre/lib/charsets.jar;d:/program files/myeclipse 6.5/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
如对本文有疑问, 点击进行留言回复!!
android用Popup弹出窗(PopupWindow的使用方式)
ionic3 打包 Could not get resource ‘https://jcenter.bintray.com/com/google/zxing/core/3.2.1/core-3.2.1
NullPointerException: Attempt to invoke virtual method ‘android.content.res.XmlResourceParser androi
网友评论