Konsep variabel lingkungan tidak asing dengannya, itu adalah variabel lingkungan dari sistem operasi.
Variabel sistem adalah variabel yang dikelola oleh Java itu sendiri. Dapatkan melalui System.getProperty.
Untuk sistem operasi yang berbeda, pemrosesan variabel lingkungan mungkin tidak konsisten, seperti case tidak sensitif, dll.
Java mendapatkan variabel lingkungan
Cara Java mendapatkan variabel lingkungan sangat sederhana:
System.getEnv () Mendapat semua variabel lingkungan
System.getEnv (key) Mendapat nilai variabel lingkungan
Peta peta = system.getEnv (); Iterator it = map.entryset (). Iterator (); while (it.hasnext ()) {entri entri = (entri) it.next (); System.out.print (entry.getKey ()+"="); System.out.println (entry.getValue ()); }Jika itu adalah sistem Windows, nilai cetak sama dengan variabel lingkungan yang terlihat dari "komputer saya".
Java mendapatkan dan menetapkan variabel sistem
Cara Java mendapatkan variabel lingkungan juga sangat sederhana:
System.getProperties () Mendapat semua variabel sistem
System.getProperty (key) Mendapat nilai variabel sistem
Properties Properties = System.getProperties (); Iterator it = properties.entryset (). Iterator (); while (it.hasnext ()) {entri entri = (entri) it.next (); System.out.print (entry.getKey ()+"="); System.out.println (entry.getValue ()); }Selain dapat memperoleh variabel sistem, Anda juga dapat mengatur variabel sistem yang Anda butuhkan melalui System.setProperty (kunci, nilai).
Secara default, variabel sistem apa yang diatur dalam Java:
Mengisi kembali
1. Dalam .bat; .cmd atau .sh, beberapa variabel akan ditetapkan dengan set.
Misalnya, setDomainenv.cmd WebLogic
Setel Sun_java_home = C:/Oracle/Middleware/JDK160_21
Variabel lingkungan diatur di sini
2. Dalam konfigurasi log4j, jalur pembuatan file log terkadang dikonfigurasi.
Misalnya, $ {log_dir} /logfile.log, log_dir di sini digantikan oleh variabel atribut sistem.
3. Lihatlah kode sumber Java. Saat Anda mendapatkan variabel sistem melalui System.getProperties (), akan ada cek yang aman.
Public Static Properties GetProperties () {SecurityManager sm = getSecurityManager (); if (sm! = null) {sm.CheckPropertiesAccess (); } mengembalikan alat peraga; } SecurityManager dalam sistem kosong selama satu tes aplikasi Java.
Saat applet berjalan, izin diperiksa dalam kombinasi dengan file .policy.
Jika Anda memberikan SecurityManager kosong, Anda akan menemukan bahwa pengecualian izin akan dilemparkan.
public static void main (String [] args) {// TODO Metode Stub yang dihasilkan otomatis System.setsecurityManager (New SecurityManager ()); // SecurityManager sm = System.getSecurityManager (); //System.out.println(sm); System.getSecurityManager (). CheckPropertiesAccess (); } Perbedaan antara System.getEnv () dan System.getProperties () public static void main (string [] args) {map m = system.getEnv (); untuk (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 ("--------------------------------------"); Properti p = system.getProperties (); untuk (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:/Program Files/Microsoft DirectX SDK (August 2008)/VS80COMNTOOLS:C:/Program Files/Microsoft Visual Studio 8/Common7/Tools/SESSIONNAME:ConsoleHOMEPATH:/Documents and Settings/AdministratorTMP:C:/DOCUME~1/ADMINI~1/LOCALS~1/Tempwindir:C:/WINDOWSPROCESSOR_IDENTIFIER:x86 Family 6 Model 15 Stepping 13, GenuineIntelVS90COMNTOOLS:e:/Program Files/Microsoft Visual Studio 9.0/Common7/Tools/SystemDrive: C: UserProfile: C:/Dokumen dan Pengaturan/AdministratorPathext: .com; .exe; .bat; .cmd; .vbs; .vbe; .js; .jse; .wsf; .wshcommonprogramfiles: c:/program common; FileNumber_of_processors: 2comspec: c: /windows/system32/cmd.execomputername: rj-weijianjunos: windows_ntusername: administratorclientname: consoletemp: c:/docume ~ admini ~ 1/penduduk setempat ~ 1/TempuserMP: c:/docume ~ 1/admini ~ 1/penduduk setempat ~ 1/tempuseromin: c:/docume ~ 1/admini ~ 1/penduduk setempat ~ 1/tempusereF: Pengaturan/Semua Userslib: C:/File Program/SQLXML 4.0/BIN/Prosesor_Level: 6Systemroot: C:/WindowsClusterLog: c: /windows/cluster/cluster.logappdata: c:/documents dan settings/administrator/application dataPath: c:/windows/system32; 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/binJAVA_HOME:C:/Program File/java/jdk1.6.0_07fp_no_host_check: noprocessor_revision: 0F0DProgramFiles: c:/file programInilah output dari properti:
-------------------------------------- Java.runtime.name:java(tm) 2 Lingkungan Runtime, Edisi Standar.Boot.Library.path: D:/Program File/Myeclipse 6.5/jre/binjava.vm. 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_STANDARDuser.country:CNsun.os.patch.level:Service Pack 2java.vm.specification.name:java spesifikasi mesin virtual.dir: d: /dev/eclipse/mye65/workspace/jmxjava.runtime.version: 1.5.0_11-b03java.awt.graphicsenv: sun.awt.win32graphics.awt.graphicsenv: sun.awt.win32graphic File/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 microsystems inc.user. 2003sun.jnu.encoding: gbkjava.library.path: d:/file program/myeclipse 6.5/jre/bin;.; C:/windows/system32; c:/windows; c:/windows/system32; c:/windows; c:/windows/System32/wbem; c:/corn/cools/sq. File/Microsoft SQL Server/90/DTS/Binn/; C:/Program File/Microsoft SQL Server/90/Tools/Binn/; C:/Program File/Microsoft SQL Server/90/Tools/Binn/; C:/Program Files/Microsoft SQL Server/90/Tools/Binn/; Server/90/Tools/Binn/Vsshell/Common7/IDE/; C:/Program File/Microsoft Visual Studio 8/Common7/IDE/PrivateAssemblies/; D:/Program/Devel/Flex_SDK2/bin; D:/Program/Devel/Ant/Bin; C:/Program File/java/jdk1.6.0_07/bin;%jonas_root%/bin/nt; d: /program/devel/ant/binjava.specification.name: java platform API: COLMOUSE.Version. Pengaturan/AdministratorUser.TimeZone: Asia/Shanghaijava.awt.printerjob: sun.awt.windows.wprinterjobfile.encoding: gbkjava.specification.version: 1.5java.class.path: d:/dev/eclipse/mye65 b/jmx/jmxtools.jar; d: /program/lib/log/commons-logging-1.1.1.jar; d: /program/lib/log/log4j-1.2.15.jar; d:/pro gram/lib/registry/registry.jaruser.name: administratorjava.vm.specification.version: 1.0Java.Home: D:/program File/Myeclipse 6.5/jresun.arch.data.model: 32User.banguage: zhjava.specification.vendor: sun microsystems inc.awt.toolkit: sun.awt.windows.wtoolkitjava.vm.info: mixed Modejava. Files/MyEclipse 6.5/jre/lib/extsun.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/sunrasign.jar;D:/Program File/Myeclipse 6.5/jre/lib/jsse.jar; d:/file program/myeclipse 6.5/jre/lib/jce.jar; d:/file program/myeclipse 6.5/jre/lib/charsets.jar; file d:/program/myeclipse 6.5/jre/jre/jre/jsets. 6.5/JRE/CLASSEJAVA.VENDOR: Sun Microsystems Inc.File.Separator: /java.vendor.url.bug: http: //java.sun.com/cgi-bin/bugreport.cgisun.io.unicode.encoding: windows.cpu.endian: littlesun.desktop Pentium_pro Pentium+Mmx Pentium I486 I386 I86