El concepto de variables de entorno no se desconoce con él, son las variables de entorno del sistema operativo.
Las variables del sistema son variables mantenidas por Java. Obténloe a través de System.getProperty.
Para diferentes sistemas operativos, el procesamiento de las variables de entorno puede ser inconsistente, como insensible a los casos, etc.
Java obtenga variables de entorno
La forma de Java de obtener variables de entorno es muy simple:
System.getenv () obtiene todas las variables de entorno
System.getenv (clave) obtiene el valor de una variable de entorno
Map map = system.getenv (); Iterador it = map.entryset (). Iterator (); while (it.hasNext ()) {Entry Entry = (Entry) It.Next (); System.out.print (Entry.getKey ()+"="); System.out.println (Entry.getValue ()); }Si se trata de un sistema de Windows, el valor impreso es el mismo que las variables de entorno que se ven en "mi computadora".
Java obtiene y establece variables del sistema
La forma de Java de obtener variables de entorno también es muy simple:
System.getProperties () obtiene todas las variables del sistema
System.getProperty (clave) obtiene el valor de una variable del sistema
Propiedades Propiedades = 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 ()); }Además de poder obtener variables del sistema, también puede establecer las variables del sistema que necesita a través de System.SetProperty (clave, valor).
Por defecto, qué variables del sistema se establecen en Java:
Reponer
1. En .bat; .cmd o .Sh, se establecerán algunas variables por conjunto.
Por ejemplo, setdomainenv.cmd de WebLogic
Establecer SUN_JAVA_HOME = C:/Oracle/Middleware/JDK160_21
La variable de entorno se establece aquí
2. En la configuración LOG4J, la ruta de generación del archivo de registro a veces está configurada.
Por ejemplo, $ {log_dir} /logfile.log, el log_dir aquí se reemplaza por una variable del atributo del sistema.
3. Eche un vistazo al código fuente de Java. Cuando obtenga variables del sistema a través de System.getProperties (), habrá una verificación segura.
Propiedades estáticas públicas getProperties () {SecurityManager SM = GetSecurityManager (); if (sm! = null) {sm.checkpropertiesAccess (); } retorno de accesorios; } El SecurityManager en el sistema está vacío durante una sola prueba de aplicación Java.
Cuando se ejecuta el applet, los permisos se verifican en combinación con el archivo .policy.
Si le da a un SecurityManager vacío, encontrará que se lanzará una excepción de permiso.
public static void main (string [] args) {// TODO Auto Generado Método stub System.SetSecurityManager (New SecurityManager ()); // SecurityManager SM = System.getSecurityManager (); //System.out.println(sm); System.getSecurityManager (). CheckPropertIesAccess (); } La diferencia entre System.Getenv () y 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 (); Valor de cadena = (String) M.Get (Key); System.out.println (clave +":" +valor); } System.out.println ("--------------------------------------"); Propiedades P = System.getProperties (); for (iterator it = p.keySet (). iterator (); it.hasnext ();) {string key = (string) it.next (); Valor de cadena = (String) p.get (clave); System.out.println (clave +":" +valor); }}Ant_home: D:/Program/Devel/Antprocessor_architecture: x86Logonserver: // rj-weijianjunhomedrive: c: catalina_home: d: /program/server/tomcat5.5dxsdk_dir: d:/programa/microsoft directox sdk (agosto) Archivos/Microsoft Visual Studio 8/Common7/Herramients/SessionName: ConsoleHomepath:/Documents and Settings/AdministratortMp: C:/Docume ~ 1/Admini ~ 1/Locals ~ 1/Tempwindir: C:/WindowsProcessor_identifier: X86 Family 6 Modelo 15 Paseado 13, GenuineIntelvs90conteols: E:/Files de programa/MicroSooft/MicroSoft/MicroSoft/MicroSoft/MicroSoft/MicroSoft/MicroSoft/Micesoft/Micesoft Files/MicroSoft/MicroSoft/Micesoft Files/MicroSoft/MicroSoft At 9.0/Common7/Tools/SystemDrive: C: UserProfile: C:/Documents and Settings/AdministratorPathext: .com; .exe; .bat; .cmd; .vbs; .vbe; .js; .jse; .wsf; .wshcommonprogramfiles: c:/El programa/archivos comunes de programa comunes Filesnumber_of_processors: 2comspec: c: /windows/system32/cmd.execomputerName: rj-weijianjunos: windows_ntusername: administradorClientName: consoletemp: c:/docume ~ 1/admini ~ 1/locals ~ 1/tempuserMain: rj-weiJianJunallusers: c:////locales Settings/All Userslib:C:/Program Files/SQLXML 4.0/bin/PROCESSOR_LEVEL:6SystemRoot:C:/WINDOWSClusterLog:C:/WINDOWS/Cluster/cluster.logAPPDATA:C:/Documents and Settings/Administrator/Application DataPath:C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;C:/Program Archivos/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/COMN 8/Common7/ide/privateassemblies/; d:/programa/devel/flex_sdk2/bin; d:/programa/desvel/ant/bin; c:/programas de programas/java/jdk1.6.0_07/bin;%jonas_root%/bin/nt; d:/programa/debvel/ant/binjava_hom Archivos/java/jdk1.6.0_07fp_no_host_check: noprocessor_revision: 0f0dprogramfiles: c:/archivos de programaAquí está el resultado de la propiedad:
------------------------------------------ Java.runtime.name:Java(tm) 2 ENTROLODO DE TIEMPO DE RUNE, EDITICIÓN ESTÁNDA Inc.java.vendor.url: http: //java.sun.com/path.separator:; java.vm.name: java hotspot (tm) cliente vmfile.encoding.pkg: sun.iosun.java.launcher: sun_standarduser.county: cnsun.os.patch.level 2Java.Vm.Specification.Name:Java Virtual Machine SpecificationUser.dir: d: /dev/eclipse/mye65/workspace/jmxjava.runtime.version: 1.5.0_11-b03java.awt.graphicsenv: sun.awt.win32graphicsenvironmentmentjava.endorsed.dirsed.d:////Protres Archivos/myeclipse 6.5/jre/lib/shardorsedos.arch: x86java.io.tmpdir: c: /docume~1/admini~1/locals~1/temp/line.separator: java.vm.specification.vendor: Sun Microsystems Inc.user.variant: Os.name: Windows: Windows: Windows: Windows: Windows: Windows: Windows: Windows: Windows: Windows: Windows 2003sun.jnu.Encoding: gbkjava.library.path: d:/programas de programa/myeclipse 6.5/jre/bin;. Archivos/Microsoft SQL Server/90/dts/binn/; c:/programa de programas/Microsoft SQL Server/90/Hools/Binn/; C:/Program Files/Microsoft SQL Server/90/Herramient Servidor/90/herramientas/binn/vsshell/common7/ide/; c:/archivos de programa/Microsoft Visual Studio 8/Common7/IDE/privateassemblies/; D:/Program/Devel/Flex_SDK2/Bin; D:/Program/Devel/Ant/Bin; C:/Program Archivos/java/jdk1.6.0_07/bin;%jonas_root%/bin/nt; d: /program/devel/ant/binjava.specification.name: java plataforma API EspecificationJava.class.version: 49.0sun.management.compiler: Hotspot Client Compilherossion y Settings/AdministratorUser.Timezone: Asia/Shanghaijava.awt.printerjob: Sun.awt.windows.wprinterjobfile.encoding: gbkjava.specification.version: 1.5java.class.path: d:/dev/eclipse/mye65/workpace/jmx/bin; b/jmx/jmxteols.jar; d: /program/lib/log/commons-logging-1.1.1.jar; d: /program/lib/log/log4j-1.2.15.jar; d:/pro Gram/lib/registro/registry.jaruser.name: administradorjava.vm.specification.version: 1.0java.home: d:/programa Archivos/myeclipse 6.5/jresun.arch.data.model: 32user.language: zhjava.specification.vendor: sun microsystems Inc.awt.toolkit: sun.awt.windows.wtoolkitjava.vm.info: modo mezclado jajada. Archivos/myeclipse 6.5/jre/lib/extsun.boot.class.path: d:/programa archivos/myeclipse 6.5/jre/lib/rt.jar; d:/archivos de programa/myeclipse 6.5/jre/lib/i18n.jar; d:/archivos de programa/myeclipse 6.5/jre/lib/lib/lib/lib/lib/jeJar; dio 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/lib/charsets.jar;D:/Program Files/MyEclipse 6.5/jre/classesjava.vendor: Sun Microsystems Inc.file.separator: /java.vendor.url.bug: http: //java.sun.com/cgi-bin/bugrreport.cgisun.io.unicode.encoding: unicodelittlesun.cpu.endian: littlesun.desktop: windowsun.cpu.isalist: pentium_ mmmxx pentium_pro pentium+mmx pentium i486 i386 i86