แนวคิดของตัวแปรสภาพแวดล้อมไม่ได้ไม่คุ้นเคยกับมันมันเป็นตัวแปรสภาพแวดล้อมของระบบปฏิบัติการ
ตัวแปรระบบเป็นตัวแปรที่เก็บรักษาโดย Java เอง รับผ่าน System.getProperty
สำหรับระบบปฏิบัติการที่แตกต่างกันการประมวลผลตัวแปรสภาพแวดล้อมอาจไม่สอดคล้องกันเช่นกรณีที่ไม่รู้สึก ฯลฯ
Java รับตัวแปรสภาพแวดล้อม
วิธีการของตัวแปรสภาพแวดล้อมของ Java นั้นง่ายมาก:
System.getenv () ได้รับตัวแปรสภาพแวดล้อมทั้งหมด
System.getenv (คีย์) ได้รับค่าของตัวแปรสภาพแวดล้อม
MAP MAP = System.getEnv (); iterator it = map.entryset (). iterator (); ในขณะที่ (it.hasnext ()) {รายการรายการ = (รายการ) it.next (); System.out.print (entry.getKey ()+"="); System.out.println (entry.getValue ()); -หากเป็นระบบ Windows ค่าที่พิมพ์จะเหมือนกับตัวแปรสภาพแวดล้อมที่เห็นจาก "คอมพิวเตอร์ของฉัน"
Java ได้รับและตั้งค่าตัวแปรระบบ
วิธีการของตัวแปรสภาพแวดล้อมของ Java นั้นง่ายมากเช่นกัน:
System.getProperties () ได้รับตัวแปรระบบทั้งหมด
System.getProperty (คีย์) ได้รับค่าของตัวแปรระบบ
คุณสมบัติคุณสมบัติ = system.getProperties (); Iterator It = Properties.entrySet (). iterator (); ในขณะที่ (it.hasnext ()) {รายการรายการ = (รายการ) it.next (); System.out.print (entry.getKey ()+"="); System.out.println (entry.getValue ()); -นอกเหนือจากความสามารถในการรับตัวแปรระบบแล้วคุณยังสามารถตั้งค่าตัวแปรระบบที่คุณต้องการผ่าน System.SetProperty (คีย์ค่า)
โดยค่าเริ่มต้นตัวแปรระบบใดที่ตั้งค่าใน Java:
เติมเต็ม
1. ใน. bat; .CMD หรือ. sh ตัวแปรบางตัวจะถูกตั้งค่าโดย SET
ตัวอย่างเช่น setdomainenv.cmd ของ WebLogic
ตั้งค่า sun_java_home = c:/oracle/middleware/jdk160_21
ตัวแปรสภาพแวดล้อมถูกตั้งค่าไว้ที่นี่
2. ในการกำหนดค่า log4j บางครั้งเส้นทางการสร้างของไฟล์บันทึกจะถูกกำหนดค่าบางครั้ง
ตัวอย่างเช่น $ {log_dir} /logfile.log, log_dir ที่นี่ถูกแทนที่ด้วยตัวแปรของแอตทริบิวต์ระบบ
3. ดูที่ซอร์สโค้ด Java เมื่อคุณได้รับตัวแปรระบบผ่าน System.getProperties () จะมีการตรวจสอบอย่างปลอดภัย
คุณสมบัติคงที่สาธารณะ getProperties () {SecurityManager SM = GetSecurityManager (); if (sm! = null) {sm.checkpropertiesaccess (); } กลับอุปกรณ์ประกอบฉาก; - SecurityManager ในระบบว่างเปล่าในระหว่างการทดสอบแอปพลิเคชัน Java เดียว
เมื่อแอปเพล็ตทำงานจะมีการตรวจสอบการอนุญาตร่วมกับไฟล์. policy
หากคุณให้ SecurityManager ที่ว่างเปล่าคุณจะพบว่าข้อยกเว้นการอนุญาตจะถูกโยนลงไป
โมฆะคงที่สาธารณะหลัก (String [] args) {// todo วิธีการที่สร้างขึ้นอัตโนมัติระบบ Stub System.SetSecurityManager (ใหม่ SecurityManager ()); // SecurityManager SM = System.getSecurityManager (); //system.out.println(SM); System.getSecurityManager (). CheckPropertiesAccess (); - ความแตกต่างระหว่าง system.getenv () และ system.getProperties () โมฆะคงที่สาธารณะหลัก (สตริง [] args) {map m = system.getenv (); สำหรับ (iterator it = m.keyset (). iterator (); it.hasnext ();) {string key = (string) it.next (); ค่าสตริง = (สตริง) m.get (คีย์); System.out.println (คีย์ +":" +ค่า); } system.out.println ("----------------------------------"); คุณสมบัติ p = system.getProperties (); สำหรับ (iterator it = p.keyset (). iterator (); it.hasnext ();) {string key = (string) it.next (); ค่าสตริง = (สตริง) p.get (คีย์); System.out.println (คีย์ +":" +ค่า); -ANT_HOME: D:/โปรแกรม/devel/antprocessor_architecture: x86logonserver: // rj-weijianjunhomedrive: c: catalina_home: d: /program/server/tomcat5.5dxsdk_dir: d:/programs/microsoft ไฟล์/Microsoft Visual Studio 8/Common7/Tools/SessionName: ConsoleHomePath:/เอกสารและการตั้งค่า/administratortMP: C:/docume ~ 1/admini ~ 1/locals ~ 1/tempwindir: c:/windowsprocessor_identifier: x86 ครอบครัว 9.0/Common7/Tools/SystemDrive: C: UserProfile: C:/เอกสารและการตั้งค่า/AdministratorPathrext: .com; .exe; .bat; .cmd; .vbs; .vbe; .js; filesnumber_of_processors: 2comspec: c: /windows/system32/cmd.execomputername: rj-weijianjunos: windows_ntusername: administratorclientname: consoleTemp: c:/docume ~ 1/admini ~ 1/locals การตั้งค่า/userslib ทั้งหมด: c:/ไฟล์โปรแกรม/sqlxml 4.0/bin/processor_level: 6systemroot: c:/windowsclusterlog: c: /windows/cluster/cluster.logappdata: C:/เอกสารและการตั้งค่า/ผู้ดูแลระบบ ไฟล์/Microsoft SQL Server/80/เครื่องมือ/binn/; c:/program files/microsoft SQL Server/90/dts/binn/; c:/โปรแกรมไฟล์/Microsoft SQL Server/90/tools/binn/; c:/program files/microsoft SQL Server/90/เครื่องมือ 8/common7/ide/privateaseSsemblies/; d:/โปรแกรม/devel/flex_sdk2/bin; d:/โปรแกรม/devel/ant/bin; c:/ไฟล์โปรแกรม/java/jdk1.6.0_07/bin; ไฟล์/java/jdk1.6.0_07fp_no_host_check: noprocessor_revision: 0f0dprogramfiles: c:/ไฟล์โปรแกรมนี่คือผลลัพธ์ของคุณสมบัติ:
---------------------------------- java.runtime.name:java(TM) 2 สภาพแวดล้อมรันไทม์, Editionsun.boot.library.path: D:/Program Files/Myeclipse 6.5/JRE/BINJAVA.VM.VM.VSION: 1.5.0_11-B03JAVA.VM. inc.java.vendor.url: http: //java.sun.com/path.separator :; java.vm.name: java ฮอตสปอต (tm) ลูกค้า vmfile.encoding.pkg: sun.iosun.java.launcher: sun_standarduser.country.country 2java.vm.specification.name:java ข้อมูลจำเพาะเครื่องเสมือนจริง User.dir: d: /dev/eclipse/mye65/workspace/jmxjava.runtime.version: 1.5.0_11-b03java.awt.graphicsenv: sun.awt.win32graphicsenv: sun. ไฟล์/myeclipse 6.5/jre/lib/endorsedos.arch: x86java.io.tmpdir: c: /docume~1/admini~1/locals~1/temp/line.separator: java.vm.pecification.vendor: Sun Microsystems 2003sun.jnu.encoding: gbkjava.library.path: d:/ไฟล์โปรแกรม/myeclipse 6.5/jre/bin;. ไฟล์/Microsoft SQL Server/90/DTS/BINN/; C:/โปรแกรมไฟล์/Microsoft SQL Server/90/เครื่องมือ/binn/; c:/โปรแกรมไฟล์/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:/โปรแกรม/devel/flex_sdk2/bin; d:/โปรแกรม/devel/ant/bin; ไฟล์/java/jdk1.6.0_07/bin;%jonas_root%/bin/nt; d: /program/devel/ant/binjava.specification.name: Java platform api specificationjava.class.ersion: 49.0Sun.Management.Compilerer และการตั้งค่า/administratoruser.timezone: เอเชีย/shanghaijava.awt.printerjob: sun.awt.windows.wprinterjobfile.encoding: gbkjava.specification.version: 1.5java.class.path: d:/dev/eclipse/eclipse/mye 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:/โปรแกรม ไฟล์/myeclipse 6.5/jresun.arch.data.model: 32User.Language: zhjava.specification.vendor: Sun Microsystems Inc.awt.toolkit: Sun.awt.windows.wtoolkitjava.vm.info ไฟล์/myeclipse 6.5/jre/lib/extsun.boot.class.path: d:/โปรแกรมไฟล์/myeclipse 6.5/jre/lib/rt.jar; d:/program files/myeclipse 6.5/jre/lib/i18n.jar; d:/โปรแกรม/โปรแกรม ไฟล์/myeclipse 6.5/jre/lib/jsse.jar; d:/โปรแกรม program/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 Pentium_pro Pentium+Mmx Pentium i486 i386 i86