لم يكن مفهوم متغيرات البيئة غير مألوف معها ، فهو متغيرات البيئة في نظام التشغيل.
متغيرات النظام هي المتغيرات التي يحتفظ بها جافا نفسها. الحصول عليه من خلال system.getProperty.
بالنسبة لأنظمة التشغيل المختلفة ، قد تكون معالجة متغيرات البيئة غير متسقة ، مثل حالة غير حساسة للحالة ، إلخ.
جافا الحصول على متغيرات البيئة
طريقة جافا للحصول على متغيرات البيئة بسيطة للغاية:
System.getenv () يحصل على جميع متغيرات البيئة
System.Getenv (المفتاح) يحصل على قيمة متغير البيئة
خريطة الخريطة = system.getenv () ؛ iterator it = map.entryset (). iterator () ؛ بينما (it.hasnext ()) {entrate entry = (entry) it.next () ؛ System.out.print (enter.getKey ()+"=") ؛ System.out.println (enter.getValue ()) ؛ }إذا كان نظام Windows ، فإن القيمة المطبوعة هي نفس متغيرات البيئة التي شوهدت من "جهاز الكمبيوتر الخاص بي".
جافا يحصل وتعيين متغيرات النظام
طريقة جافا للحصول على متغيرات البيئة بسيطة للغاية أيضًا:
System.GetProperties () يحصل على جميع متغيرات النظام
System.GetProperty (المفتاح) يحصل على قيمة متغير النظام
خصائص الخصائص = system.getProperties () ؛ iterator it = properties.EntrySet (). iterator () ؛ بينما (it.hasnext ()) {entrate entry = (entry) it.next () ؛ System.out.print (enter.getKey ()+"=") ؛ System.out.println (enter.getValue ()) ؛ }بالإضافة إلى القدرة على الحصول على متغيرات النظام ، يمكنك أيضًا تعيين متغيرات النظام التي تحتاجها من خلال System.SetProperty (المفتاح ، القيمة).
بشكل افتراضي ، ما هي متغيرات النظام التي تم تعيينها في Java:
تجديد
1. في. بات. .cmd أو .sh ، سيتم تعيين بعض المتغيرات عن طريق المجموعة.
على سبيل المثال ، WebLogic's Setdomainenv.cmd
اضبط 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 واحد.
عند تشغيل Applet ، يتم فحص الأذونات جنبًا إلى جنب مع الملف .policy.
إذا أعطيت رجل أمان فارغ ، فستجد أنه سيتم إلقاء استثناء إذن.
Public Static Void Main (String [] args) {// todo method method method method system.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 () ؛ لـ (iterator it = m.keyset (). iterator () ؛ it.hasNext () ؛) {string key = (string) it.next () ؛ قيمة السلسلة = (سلسلة) m.get (مفتاح) ؛ System.out.println (Key +":" +value) ؛ } System.out.println ("----------------------------------------") ؛ الخصائص p = system.getProperties () ؛ لـ (iterator it = p.keyset (). iterator () ؛ it.hasNext () ؛) {string key = (string) it.next () ؛ قيمة السلسلة = (سلسلة) P.Get (المفتاح) ؛ System.out.println (Key +":" +value) ؛ }}ant_home: D:/program/devel/antprocessor_architecture: x86logonserver: // rj-weijianjunhomedrive: c: catalina_home: d: /program/Server/tomcat5.5dxsdk_dir:/program files/microsoft direc الملفات/Microsoft Visual Studio 8/common7/أدوات/جلسة الاسم: ConsolehomePath:/المستندات والإعدادات/AdministratortMP: C:/docume ~ 1/admini ~ 1/السكان المحليين ~ 1/tempwindir: c:/windowsprocessor_identifier: 9.0/common7/tools/systemdrive: c: userprofile: c:/المستندات والإعدادات/المسؤول عن طريق السير: .com ؛ .Exe ؛ .BAT ؛ .CMD ؛ .VBS ؛ .VBE ؛ .JS ؛ .JSE ؛ filesnumber_of_processors: 2comspec: c: /windows/system32/cmd.execompuTername: rj-weijianjunos: windows_ntusername: administratorclientname: consoletemp: c:/docume ~ 1/admini ~ 1/lemits ~ 1/tempuserdomain: rj-weiian UsperSlib: c:/ملفات البرنامج/sqlxml 4.0/bin/processor_level: 6systemroot: c:/windowsclusterlog: c: /windows/cluster/cluster/logappdata SQL Server/80/tools/binn/؛ c:/program files/microsoft SQL Server/90/dts/binn/؛ c:/program files/microsoft SQL Server/90/tools/binn/؛ 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/anmome الملفات/java/jdk1.6.0_07fp_no_host_check: noprocessor_revision: 0f0drogramfiles: c:/program filesهنا إخراج الخاصية:
----------------------------------------- java.runtime.name:java(tm) 2 بيئة وقت التشغيل ، editionsun.boot.library.path://ملفات البرامج/myeclipse 6.5/jre/binjava.v.versh Inc.java.vendor.url: http: //java.sun.com/path.separator: ؛ 2java.vm.specification.name: java virtual machine specification.dir: d: /dev/eclipse/mye65/workspace/jmxjava.runtime.version: الملفات/myeclipse 6.5/jre/lib/inforsedos.arch: x86java.io.tmpdir: c: /docume~1/admini~1/locals~1/temp/line.separator: java.vm.specification 2003sun.jnu.encoding: gbkjava.library.path: d:/program files/myeclipse 6.5/jre/bin ؛. ؛ c:/windows/system32 ؛ c:/windows ؛ c:/windows/system32 ؛ c:/windows الملفات/Microsoft SQL Server/90/DTS/BINN/؛ C://ملفات البرامج/Microsoft SQL Server/90/Tools/Binn/؛ C:/Program خادم/90/أدوات/binn/vsshell/common7/ide/؛ c:/ملفات البرامج/microsoft visual studio 8/common7/ide/privateassemblies/؛ d:/program/devel/flex_sdk2/bin الملفات/java/jdk1.6.0_07/bin ؛ ٪ jonas_root ٪/bin/nt ؛ d: /program/devel/ant/binjava.specifice.name: java platform api specificejava.class.version: 49.0sun.manication.compiler: الإعدادات/المسؤول. الزمانزون: آسيا/شنغهايجافا b/jmx/jmxtools.jar ؛ d: /program/lib/log/commons-logging-1.1.1.jar ؛ d: /program/lib/log/log4j-1.2.15 ملفات/myeclipse 6.5/jresun.arch.data.model: 32user.language: Zhjava.specification.dendor: Sun Microsystemss Inc.Toolkit: الملفات/myeclipse 6.5/jre/lib/extsun.boot.class.path ملفات/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 ؛ d:/program files/myeclipse 6.5/jre/lib 6.5/JRE/Classesjava.Dendor: 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.cpu.isal.isal Pentium+MMX Pentium i486 i386 i86