環境変数の概念はそれに不慣れではなく、オペレーティングシステムの環境変数です。
システム変数は、Java自体によって維持される変数です。 System.getPropertyを使用して取得します。
さまざまなオペレーティングシステムの場合、環境変数の処理は、症例の鈍感など、一貫性がない場合があります。
Javaは環境変数を取得します
環境変数を取得するJavaの方法は非常に簡単です:
System.getEnv()は、すべての環境変数を取得します
System.GetENV(キー)環境変数の値を取得します
マップマップ= 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システムの場合、印刷された値は「My Computer」から見た環境変数と同じです。
Javaはシステム変数を取得および設定します
Javaの環境変数を取得する方法も非常に簡単です。
System.GetProperties()はすべてのシステム変数を取得します
System.GetProperty(key)は、システム変数の値を取得します
プロパティプロパティ= 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では、一部の変数が設定されます。
たとえば、WeblogicのSetDomainenv.cmd
SUN_JAVA_HOME = C:/Oracle/Middleware/JDK160_21を設定します
環境変数はここで設定されています
2。log4j構成では、ログファイルの生成パスが構成されることがあります。
たとえば、$ {log_dir} /logfile.log、ここのlog_dirはシステム属性の変数に置き換えられます。
3. Javaソースコードをご覧ください。 System.getProperties()を介してシステム変数を取得すると、安全なチェックがあります。
public staticプロパティgetProperties(){securityManager sm = getSecurityManager(); if(sm!= null){sm.checkpropertiesaccess(); } propsを返します。 }システム内のセキュリティマネージャーは、単一のJavaアプリケーションテスト中に空です。
アプレットが実行されると、アクセス許可は.policyファイルと組み合わせてチェックされます。
空のSecurityManagerを提供すると、許可例外がスローされることがわかります。
public static void main(string [] args){// todo auto-fenated method stub.setsecuritymanager(new SecurityManager()); // SecurityManager SM = System.GetSecurityManager(); //system.out.println(SM); System.getSecurityManager()。checkPropertiesAccess(); } system.getEnv()とsystem.getProperties()の違い public static void main(string [] args){map m = system.getenv(); for(iterator it = m.keyset()。iterator(); it.hasnext();){string key =(string)it.next();文字列値=(string)m.get(key); System.out.println(key +":" +value); } system.out.println( "----------------------------------");プロパティ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/antprocessor_architecture:x86logonserver:// rj-weijianjunhomedrive:c:catalina_home:d:/program/server/tomcat5.5dxsdk_dir:d:/microsoft sdk(8月2008)ファイル/Microsoft Visual Studio 8/common7/Tools/sessionName:ConsoleHomePath:/documents and settings/administratortmp:/docume〜1/admini〜1/locals〜1/tempwindir:c:/windowsprocessor_identifier:x86ファミリー6モデル15ステッピング13、純粋な視覚的視覚的スタジー:e:e:e:e:e:e:e:e:e:e:e:e:e: 9.0/common7/tools/systemDrive:c:userprofile:c:/documents and settings/administratorpathext:.com; .exe; .bat; .cmd; .vbs; .vbe; .js; .jse; .wsf; .wscommonprogramfiles:c:/common/common filesnumber_of_processors:2comSpec:c:/windows/system32/cmd.execomputername:rj-weijianjunos:windows_ntusername:administatorclientname:consoletemp:c:/docume〜1/admini〜1/sapls 〜1/tempuserderdederdederdederdedederdain設定/all userslib:/プログラムファイル/sqlxml 4.0/bin/bin/processor_level:6systemroot:/windowsclusterlog:c:/windows/cluster/cluster.logappdata:C:/documents and settings/administrator/application datapath:C:/system32; c:/c:/c:/wbem;ファイル/Microsoft SQL Server/80/Tools/binn/; c:/c:/microsoft sql server/90/dts/binn/; c:/programファイル/Microsoft SQL Server/90/Tools/binn/; Studio 8/common7/IDE/privateassemblies/; d:/program/vevel/flex_sdk2/bin; d:/gromis/devel/ant/bin; files/java/jdk1.6.0_07fp_no_host_check:noprocessor_revision:0f0dprogramfiles:c:/programファイルプロパティの出力は次のとおりです。
--------------------------------------java.runtime.name:Java(TM) 2 Runtime Environment, Standard Editionsun.boot.library.path:D:/Program Files/MyEclipse 6.5/jre/binjava.vm.version:1.5.0_11-b03java.vm.vendor:Sun Microsystems Inc.java.vendor.url:http://java.sun.com/path.separator:; java.vm.name:java hotspot(tm)client vmfile.encoding.pkg:sun.iosun.java.launcher:sun_standuser.contry:cnsun.os.spatch. 2java.vm.specification.name:java仮想マシン仕様scificationuser.dir:d:/dev/eclipse/mye65/workspace/jmxjava.runtime.version:1.5.0_11-b03java.awt.graphicsenv:sun.awt.win32graphicsenvirmentments.dirmirments.ファイル/myeclipse 6.5/jre/lib/endorsedos.arch:x86java.io.tmpdir:c:/docume~1/admini~1/locals~1/temp/line.separator:java.vm.specification.vendor:sun microsystestys inc.user.variant. 2003sun.jnu.encoding:gbkjava.library.path:d:/programファイル/myeclipse 6.5/jre/bin;ファイル/Microsoft SQL Server/90/dts/binn/; c:/c:/microsoft sql server/90/tools/binn/; c:/program files/microsoft sql server/90/tools/binn/; c:/program files/microsoft sql server/90/ツール/ツール/Binn/サーバー/90/ツール/binn/vsshell/common7/ide/; c:/microsoft Visual Studio 8/common7/IDE/privateassemblies/; d:/dever/devel/flex_sdk2/bin;ファイル/java/jdk1.6.0_07/bin;%jonas_root%/bin/nt; d:/program/devel/ant/binjava.specification.name:javaプラットフォームAPI仕様api仕様:class.version:49.0sun.management settings/administratoruser.timezone:asia/shanghaijava.awt.printerjob:sun.awt.windows.wprinterjobfile.encoding:gbkjava.specification.version:1.5java.class.class.path:d:/dev/eclipse/mye65/workspace/jmx/bin; d:/bin; d:/jmx/bin; b/jmx/jmxtools.jar; d:/program/lib/log/commons-logging-1.1.jar; d:/program/lib/lib/log/log4j-1.2.15.jar;ファイル/myeclipse 6.5/jresun.arch.data.model:32user.language:zhjava.specification.vendor:sun microsystems inc.awt.windows.wtoolkitjava.vm.info:混合モードジャバ:1.5.0_11Java:1.5.0_11java:1.5.0_11Javaファイル/myeclipse 6.5/jre/lib/extsun.boot.class.path:D:/プログラムファイル/myeclipse 6.5/jre/lib/rt.jar;ファイル/myeclipse 6.5/jre/lib/jsse.jar; d:/myeclipse 6.5/jre/lib/jce.jar; d:/program files/myeclipse 6.5/jre/lib/charsets.jar; 6.5/jRE/classesjava.vendor:Sun Microsystems Inc.file.separator:/java.vendor.url.bug:http://java.sun.com/cgi-bin/bugreport.cgisun.io.unicode.encoding:unicodelittlesun.cpu.endian:littlesun.desktop:windowsun.cp.plo.isalist Pentium_Pro Pentium+MMX Pentium I486 I386 I86