O conceito de variáveis de ambiente não está familiarizado com ele, são as variáveis ambientais do sistema operacional.
As variáveis do sistema são variáveis mantidas pelo próprio Java. Obtenha -o através do System.getProperty.
Para diferentes sistemas operacionais, o processamento de variáveis ambientais pode ser inconsistente, como insensível ao caso, etc.
Java obtém variáveis de ambiente
A maneira de Java de obter variáveis de ambiente é muito simples:
System.getenv () obtém todas as variáveis de ambiente
System.getenv (key) obtém o valor de uma variável de ambiente
Mapa mapa = system.getenv (); Iterator it = map.entrySet (). Iterator (); while (it.hasNext ()) {entrada de entrada = (entrada) it.next (); System.out.print (Entry.getKey ()+"="); System.out.println (Entry.getValue ()); }Se for um sistema Windows, o valor impresso é o mesmo que as variáveis de ambiente vistas em "meu computador".
Java recebe e define variáveis do sistema
A maneira de Java de obter variáveis de ambiente também é muito simples:
System.getProperties () obtém todas as variáveis do sistema
System.getProperty (KEY) obtém o valor de uma variável do sistema
Propriedades Propriedades = System.getProperties (); Iterator it = properties.entrySet (). Iterator (); while (it.hasNext ()) {entrada de entrada = (entrada) it.next (); System.out.print (Entry.getKey ()+"="); System.out.println (Entry.getValue ()); }Além de poder obter variáveis do sistema, você também pode definir as variáveis do sistema necessárias através do System.SetProperty (chave, valor).
Por padrão, quais variáveis do sistema são definidas em Java:
Reabastecer
1. Em .bat; .cmd ou .sh, algumas variáveis serão definidas por definido.
Por exemplo, o setLogic's Setdomainenv.cmd
SET SUN_JAVA_HOME = C:/Oracle/Middleware/JDK160_21
A variável de ambiente está definida aqui
2. Na configuração log4j, o caminho de geração do arquivo de log às vezes é configurado.
Por exemplo, $ {log_dir} /logfile.log, o log_dir aqui é substituído por uma variável do atributo do sistema.
3. Dê uma olhada no código -fonte Java. Quando você obtém variáveis do sistema através do System.getProperties (), haverá uma verificação segura.
Propriedades estáticas públicas getProperties () {SecurityManager sm = getSecurityManager (); if (sm! = null) {sm.checkpropertiesAccess (); } retornar adereços; } O SecurityManager no sistema está vazio durante um único teste de aplicativo Java.
Quando o applet é executado, as permissões são verificadas em combinação com o arquivo .policy.
Se você der um SecurityManager vazio, descobrirá que uma exceção de permissão será lançada.
public static void main (string [] args) {// TODO Method Auto-Gerated Method Stub System.SetSecurityManager (new SecurityManager ()); // SecurityManager SM = System.getSecurityManager (); //System.out.println(sm); System.getSecurityManager (). CheckPropertiesAccess (); } A diferença entre System.getEnv () e 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 value = (string) m.get (chave); System.out.println (chave +":" +valor); } System.out.println ("--------------------------------------"); Propriedades p = System.getProperties (); for (iterator it = p.KeySet (). iterator (); it.hasnext ();) {string key = (string) it.next (); String value = (string) p.get (chave); System.out.println (chave +":" +valor); }}Ant_home: D:/Program/Devel/Antprocessor_architecture: X86LOGONSERVER: // RJ-WeijianJunhomedrive: C: Catalina_Home: D: /program/Server/TOMCAT5.5DXX_DIR: D:/Program Files/MicroSoft Arquivos/Microsoft Visual Studio 8/Common7/Tools/SessionName: ConsoleHomePath:/Documentos e Configurações/AdministratortMp: C:/docume ~ 1/Admini ~ 1/local 9.0/Common7/Tools/SystemDrive: C: UserProfile: C:/Documentos e Configurações/AdministratorPathExt: .com; .exe; .bat; .cmd; .vbs; .vbe; .js; .jse; .wsf; .wshcommonprogramfiles: c:/programas/Common/Common; Filesnumber_of_processors: 2comspec: c: /windows/system32/cmd.execomputername: rj-weijianjunos: windows_ntusername: administratorclientName: consolETemp: c:/docum ~ 1/administrador ~ 1/locals ~ 1/temperdominAin: Configurações/todos os usuárioslib: c:/arquivos de programas/sqlxml 4.0/bin/processor_level: 6systemroot: c:/windowsclusterLog: c: /windows/cluster/cluster.logappdata: c:/documents e settings/administrador/aplicação datapath: c:/windows/system32; c:/c:/windows; Arquivos/Microsoft SQL Server/80/Tools/Binn/; C:/Arquivos de Programas/Microsoft SQL Server/90/DTS/Binn/; C:/Arquivos de Programas/Microsoft SQL Server/90/Tools/Binn/; C:/Program Files/Microsoft SQL Server/90/90/Ferls/Binn/; 8/Common7/IDE/privatESeSemblies/; D:/Program/Devel/flex_sdk2/bin; D:/Program/Devel/Ant/Bin; C:/Arquivos de Programas/Java/Jdk1.6.0_07/Bin;%Jonas_root%/Bin/Nt; Arquivos/java/jdk1.6.0_07fp_no_host_check: noprocessor_revision: 0f0dprogramfiles: c:/arquivos de programasAqui está a saída da propriedade:
---------------------------------------Java.Runtime.Name:Java(tm) 2 Ambiente de tempo de execução, Standard Editionsun.boot.library.path: D:/Arquivos de Programas/Myeclipse 6.5/Jre/Binjava.vm.version: 1.5.0_11-B03JavA.VENDORMOR: Inc.java.vendor.url: http: //java.sun.com/path.separator:; java.vm.name: java hotspot (tm) cliente vmfile.encoding.pkg: sun.iosun.java.lanuncher: sun_standardser.country 2java.vm.specification.name:Java Máquina virtual especificação URSER.DIR: d: /dev/eclipse/mye65/workspace/jmxjava.runtime.version: 1.5.0_11-b03java.awrombersenv: sun.awt.win32grahenghenva.graphymEnv: sun.awt.win32grahenghenvA.GraphenMEnv: Sun.awt.win32grahnAnghenDenAdenT.GraphenMEnv: Sun.awt.win32grahnAnghenTa.GraphenMEnv: Sun.awt.win32grahen Arquivos/myeclipse 6.5/jre/lib/endossedos.arch: x86java.io.tmpdir: c: /docume~1/admini~1/locals~1/temp/line.separator: java.vm.specification.Vendor: Sun Microsystems Inc.er.erator.Varator. 2003sun.jnu.encoding: gbkjava.library.path: d:/arquivos de programas/myeclipse 6.5/jre/bin; .; c:/windows/system32; c:/windows; c:/windows/system32; c:/windows; c:/windows/system32/wbem; c: c: c:/programs/system32; c:/windows; c:/system32/wbem; c: c: c: c:/programa Arquivos/Microsoft SQL Server/90/dts/binn/; c:/Arquivos de programas/Microsoft SQL Server/90/Tools/binn/; c:/Arquivos de programas/Microsoft SQL Server/90/Tools/Binn/; C:/Arquivos de programas/Microsoft SQL/90/Sql/Binn/; Server/90/Ferramentas/Binn/Vsshell/Common7/IDE/; C:/Arquivos de Programas/Microsoft Visual Studio 8/Common7/IDE/PrivateSeSensBlies/; D:/Program/Devel/Flex_sdk2/Bin; D:/Program/Devel/Ant/Bin; C:/Programa Arquivos/java/jdk1.6.0_07/bin;%jonas_root%/bin/nt; d: /program/devel/ant/binjava.specification.name: java plataform speci.cluter: classion.version: 49,0sun.Management.Comer. e Settings/AdministratorUser.TimeZone: Asia/shanghaijava.awt.printerjob: Sun.awt.windows.wprinterjobfile.encoding: gbkjava.specification.version: 1.5java.class.path: d:/dev/eclipse/mye65/workspion/workspanespace.class.path: d:/dev/eclipse/mye65/workspespace/j.class.path: d 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 grama/lib/registro/registro.jaruser.name: administratorjava.vm.specification.version: 1.0java.home: d:/program Files/MyEclipse 6.5/jresun.arch.data.model:32user.language:zhjava.specification.vendor:Sun Microsystems Inc.awt.toolkit:sun.awt.windows.WToolkitjava.vm.info:mixed modejava.version:1.5.0_11java.ext.dirs:D:/Program Arquivos/myeclipse 6.5/jre/lib/extsun.boot.class.path: d:/programas arquivos/myeclipse 6.5/jre/lib/rt.jar; d:/arquivos de programas/myeclipse 6.5/jre/lib/i18n.jar; d:/programs/myeclipse 6. Arquivos/myeclipse 6.5/jre/lib/jsse.jar; d:/Arquivos de programas/myeclipse 6.5/jre/lib/jce.jar; d:/programas arquivos/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: windowskppop.cotLittlesun.cpu.endian: littlesun.desktop: windowskppop.cond.cpu.cpu.endian: littlesun.desktop: windowskppop.cotLittlesun.cpu.endian: littlesun.desktop: windowsn.cond.cpu.cpu.ndium.smalisium Pentium+MMX Pentium i486 i386 i86