CodeGym/Java Blog/Random-IT/Ottieni le variabili d'ambiente in Java
John Squirrels
Livello 41
San Francisco

Ottieni le variabili d'ambiente in Java

Pubblicato nel gruppo Random-IT
membri

Cosa sono le variabili d'ambiente?

Ogni linguaggio di programmazione per computer contiene variabili e costanti che allocano posizioni di memoria univoche, contenenti informazioni che devono essere utilizzate dai programmi. I valori costanti non sono modificabili ma il valore della variabile può essere modificato. Le variabili d'ambiente sono la coppia chiave/valore il cui valore è impostato al di fuori del programma e il loro riferimento è sempre disponibile al programma in qualsiasi momento. Sia la chiave che il valore sono stringhe. Le convenzioni per l'impostazione e l'utilizzo delle variabili di ambiente differiscono sempre tra i sistemi operativi e gli interpreti della riga di comando. Sono sempre disponibili a livello globale per ogni applicazione in esecuzione sul sistema.

Esempio

PATH = "C:\\WINDOWS\system32;"
Qui, Path è la variabile d'ambiente impostata al di fuori del programma ma disponibile per ogni programma in esecuzione su Windows.

Caso d'uso

Come sappiamo, ogni modifica nel programma deve essere eseguita o ridistribuita sul server, il che potrebbe produrre effetti collaterali indesiderati nella produzione. Quindi lo scopo principale dell'introduzione di variabili d'ambiente è limitare questa esecuzione e distribuzione ancora e ancora.

Come ottenere variabili d'ambiente in Java?

Vediamo come ottenere variabili d'ambiente in java. Java ci fornisce 2 modi per ottenere variabili di ambiente nel programma Java.
  1. System.getenv()

  2. System.getProperty()

Ora vediamoli entrambi in dettaglio uno per uno.

System.getenv()

Il metodo System.getenv() viene utilizzato per recuperare tutte le variabili di ambiente, ma se viene fornito un nome di chiave specifico come parametro, ne recupererà il valore. java.lang.System.getenv() restituisce sempre la mappa di stringhe di tutte le variabili d'ambiente disponibili.

Dichiarazione

public static String getenv(String name)
Qui, name è il parametro utilizzato per specificare la chiave rispetto alla quale avevamo bisogno del valore.

Ritorno

Restituirà il valore della chiave o null se il parametro fornito non è associato a nessuna chiave. Se il parametro non viene passato, restituirà tutte le coppie chiave/valore disponibili.

Esempio

import java.util.Map;
public class SystemGetEnvDemo {

   public static void main(String[] args) {

      // getting value for environment variable "PATH"
      System.out.print("System.getenv(PATH) = ");
      System.out.println(System.getenv("PATH"));

      // getting value for environment variable "TEMP" resulting in null
      System.out.print("System.getenv(TEMP) = ");
      System.out.println(System.getenv("TEMP"));

      //getting all environment variables using System.getenv()
      Map<String, String> env = System.getenv();
        for (String envName : env.keySet()) {
            System.out.format("%s=%s%n",
                              envName,
                              env.get(envName));
        }
   }
}

Produzione

System.getenv(PATH) = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin System.getenv(TEMP) = null PATH=/usr/local /sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PROGRAMIZ_COMPILER_SERVICE_HOST=10.0.10.151 KUBERNETES_PORT=tcp://10.0.0.1:443 PROGRAMIZ_COMPILER_PORT=tcp://10.0.10.151 :80 TERM=xterm PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT_80_TCP_PROTO=tcp KUBERNETES_SERVICE_HOST=10.0.0.1 PS1= PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT_80_TCP_PORT=80 PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT_80_TCP_ADDR=10.0.14 .233 PROGRAMIZ_COMPILER_PORT_80_TCP=tcp://10.0.10.151:80 PROGRAMIZ_COMPILER_PORT_80_TCP_PROTO=tcp PWD=/app KUBERNETES_PORT_443_TCP=tcp://10.0.0.1 :443 PROGRAMIZ_COMPILER_PORT_80_TCP_ADDR=10.0.10.151 PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT=tcp://10.0.14.233:80 KUBERNETES_PORT_443_TCP_ADDR=10.0.0.1 PROGRAMIZ_COMPILER_WEB_UI_SEVICE_SERVICE_HOST=10.0.14.233 PROGRAMIZ_COMPILER_PORT_80_TCP_PORT=80 KUBERNETES_PORT_443_TCP_PROTO=tcp KUBERNETES_SERVICE_PORT=443 PROGRAMIZ_COMPILER_SERVICE_PORT=80 PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT_80_TCP=tcp://10.0.14.233:80 PROGRAMIZ_COMPI LER_WEB_UI_SEVICE_SERVICE_PORT=80 HOSTNAME=programiz-compiler-deployment-58bfd77477-dtlq8 KUBERNETES_PORT_443_TCP_PORT=443 KUBERNETES_SERVICE_PORT_HTTPS=443 HOME=/home/compilatore
Potresti ottenere un output diverso a seconda del tuo sistema operativo.

System.getProperty()

Possiamo anche usare java.lang.System.getProperty() in Java per recuperare il valore per la chiave specificata passata come parametro a questo metodo. Questo metodo viene utilizzato per recuperare le proprietà del sistema, ovvero le informazioni sul sistema locale e le configurazioni. Se la variabile di ambiente è presente come proprietà di sistema in java, è meglio utilizzare System.getProperty() per ottenere valore in modo indipendente dalla piattaforma. Il valore delle proprietà può essere modificato in fase di esecuzione, ma non nel caso delle variabili di ambiente.

Dichiarazione

public String getProperty(String name)
Qui, name è il parametro utilizzato per specificare la chiave rispetto alla quale avevamo bisogno del valore.

Ritorno

Restituirà il valore della chiave o null.

Esempio

import java.lang.*;
import java.util.Properties;

public class SystemGetPropertyDemo {
    public static void main(String[] args)
    {
        // getting username system property
       // using System.getProperty in Java
        System.out.println("user.name: " +  System.getProperty("user.name"));
        // getting property with key home resulting in null
        // calling system.getproperty()
        System.out.println("home: " + System.getProperty("home"));
        // getting name of Operating System
        System.out.println("os.name: " + System.getProperty("os.name"));
    }
}

Produzione

user.name: compilatore home: null os.name: Linux

Conclusione

Speriamo che ormai tu capisca cosa sono e come ottenere le variabili d'ambiente in java, il loro scopo e come utilizzare i metodi per ottenerle. Sentiti libero di esercitarti e torna quando hai bisogno di ulteriore assistenza. Buon apprendimento!
Commenti
  • Popolari
  • Nuovi
  • Vecchi
Devi avere effettuato l'accesso per lasciare un commento
Questa pagina non ha ancora commenti