¿Diferencia entre Java System.getProperty y System.getenv?

Diferencia Entre Java System Getproperty Y System Getenv



El ' Sistema.getProperty() El método recupera las propiedades específicas del sistema correspondientes al tiempo de ejecución de Java o la configuración del sistema. Ofrece información sobre el entorno Java y los sistemas operativos del sistema en el que se ejecuta. Por otro lado, el “ Sistema.getenv() El método accede a las variables de entorno específicas definidas en el entorno del sistema operativo. Contiene información dinámica sobre el sistema y la sesión actual del usuario.

Este blog explica la diferencia entre los métodos Java System.getProperty() y System.getenv().

¿Qué es el método System.getProperty() en Java?

El ' Sistema.getProperty() El método devuelve el valor asociado con la propiedad del sistema proporcionada. Consiste en un “ valor clave ” formato par, tal y como están definidos por el administrador del sistema o en los archivos de configuración. La propiedad se puede configurar con la ayuda de “ -D ” o si no se encuentra la propiedad, el “ nulo ” se devuelve. Las propiedades del sistema predeterminadas o más utilizadas junto con su descripción se describen en este enlace .







Algunas de las propiedades del sistema se utilizan en el siguiente fragmento de código:



Algunas de las propiedades del sistema se utilizan en el siguiente fragmento de código:



clase padre {
  // Inicializando el método del controlador
público estático vacío principal ( Cadena [ ] argumentos ) {
  Cadena nombre de usuario = Sistema. obtenerPropiedad ( 'user.name' ) ;
Sistema. afuera . imprimir ( 'Nombre de usuario usando la propiedad del sistema:' + nombre de usuario ) ;
 
  Cadena classPath = Sistema. obtenerPropiedad ( 'java.clase.ruta' ) ;
Sistema. afuera . imprimir ( 'La ruta de clase actual desde el directorio raíz:' + classPath ) ;

Sistema. afuera . imprimir ( 'Se utiliza una propiedad incorrecta:' + Sistema. obtenerPropiedad ( 'hogar' ) ) ;

Sistema. afuera . imprimir ( 'La información de la versión de JRE:' + Sistema. obtenerPropiedad ( 'java.runtime.versión' ) ) ;
Sistema. afuera . imprimir ( 'La arquitectura del sistema operativo actual:' + Sistema. obtenerPropiedad ( 'os.arch' ) ) ;
  }
}

Descripción del código anterior:





  • En primer lugar, se recupera el propietario o usuario real del sistema pasando el ' user.name ” propiedad en el “ Sistema.getProperty() ' método.
  • A continuación, la propiedad “ java.class.path ” se pasa al “ Sistema.getProperty() ” para recuperar la ruta de la clase actual desde el directorio raíz.
  • Entonces, la falsa propiedad de “ hogar ' esta pasado,
  • El ' Sistema.getProperty() ” método mostrará “ nulo ” indicando que la propiedad no existe.
  • De la misma manera, la versión de Java Runtime y la arquitectura del sistema se recuperan pasando el ' java.runtime.version ' y ' os.arch ”, respectivamente.

El resultado muestra que los valores requeridos para las propiedades del sistema se recuperaron con la ayuda del método 'System.getProperty()'.



¿Qué es el método System.getenv() en Java?

El ' Sistema.getenv() El método devuelve el valor correspondiente para la variable de entorno especificada. Los valores devueltos son dinámicos y están establecidos por el sistema operativo del sistema o por el usuario para la sesión actual. Al igual que el método 'System.getProperty()', si la variable no se encuentra o no contiene ningún valor, el ' nulo ” se devuelve.

Por ejemplo, visite el siguiente código:

clase rootClass {
  // Inicializando el método del controlador
público estático vacío principal ( Cadena [ ] argumentos ) {
Sistema. afuera . imprimir ( 'Recuperación de valores mediante el método System.getenv()' ) ;

  Cadena temporaryPath = Sistema. tenv ( 'TEMPERATURA' ) ;
Sistema. afuera . imprimir ( 'La ruta de la carpeta de archivos temporales es: ' + temporaryPath ) ;
 
  Cadena Sistema operativo = Sistema. tenv ( 'NUMBER_OF_PROCESADORES' ) ;
Sistema. afuera . imprimir ( 'El sistema de número de procesadores contiene:' + Sistema operativo ) ;

  Cadena directorio de ventanas = Sistema. tenv ( 'windir' ) ;
Sistema. afuera . imprimir ( 'Visualización de la ruta raíz del sistema -' + directorio de ventanas ) ;
  }
}

Explicación del bloque de código anterior:

  • Primero, se crea la clase con el nombre “ rootClass ' y el ' Sistema.getenv() El método ' se utiliza para devolver la ruta de la carpeta temporal pasando el ' TEMPERATURA ” como valor.
  • A continuación, se recupera la cantidad de procesadores y el directorio de Windows para el sistema al pasar ' NUMBER_OF_PROCESADORES ' y ' viento ” al método “System.getenv()”, respectivamente.

Después de la compilación:

El resultado confirma que se recuperaron los valores de variable de entorno requeridos.

Diferencia entre Java System.getProperty y System.getenv

La diferencia entre los métodos System.getProperty() y System.getenv() se describe a continuación en la tabla:

Término Sistema.getProperty() Sistema.getenv()
Objetivo Se utiliza para recuperar propiedades del sistema específicas de la JVM. Se utiliza para recuperar variables de entorno específicas del entorno del sistema operativo.
Fuente Las propiedades del sistema normalmente se establecen como argumentos de línea de comandos. Las variables de entorno se establecen en el entorno del sistema operativo.
Acceso Puede recuperar tanto las propiedades del sistema como las variables de entorno. Solo puede recuperar variables de entorno y requiere claves específicas para la variable.
Uso Se utiliza comúnmente para recuperar información sobre la JVM, como la versión de Java. Se usa comúnmente para acceder a configuraciones específicas del entorno o información confidencial.
Portabilidad Es independiente de la plataforma y se puede acceder a él de manera consistente a través de diferentes sistemas operativos. Las variables pueden variar entre diferentes sistemas operativos y pueden tener diferentes comportamientos.

Conclusión

El ' Sistema.getProperty() El método tiene acceso a las propiedades y la configuración del sistema específicas de Java. El ' Sistema.getenv() ” accede a las variables de entorno que están definidas en el sistema operativo. Sin embargo, ambos son adecuados para devolver información relacionada con el sistema. Además, tienen propósitos similares para recuperar información sobre el entorno del sistema, pero operan en diferentes conjuntos de datos.