Differenza tra Java System.getProperty e System.getenv?

Differenza Tra Java System Getproperty E System Getenv



IL ' System.getProperty() Il metodo ” recupera le proprietà di sistema specifiche corrispondenti al runtime Java o alla configurazione del sistema. Offre informazioni sull'ambiente Java e sui sistemi operativi per il sistema su cui viene eseguito. D'altra parte, il “ System.getenv() Il metodo ” accede alle variabili di ambiente specifiche definite nell'ambiente del sistema operativo. Contiene informazioni dinamiche sul sistema e sulla sessione utente corrente.

Questo blog spiega la differenza tra i metodi Java System.getProperty() e System.getenv().

Che cos'è il metodo System.getProperty() in Java?

IL ' System.getProperty() ” restituisce il valore associato alla proprietà di sistema fornita. Consiste in un “ chiave/valore ” formato coppia, così come sono definiti dall'amministratore di sistema o nei file di configurazione. La proprietà può essere impostata con l'aiuto del ' -D ” o se la proprietà non viene trovata, il “ nullo ” viene restituito. Le proprietà di sistema predefinite o maggiormente utilizzate insieme alla loro descrizione sono descritte in questo collegamento .







Alcune delle proprietà di sistema sono utilizzate nel seguente frammento di codice:



Alcune delle proprietà di sistema sono utilizzate nel seguente frammento di codice:



classe genitore {
//Inizializzazione del metodo del driver
pubblico statico vuoto principale ( Corda [ ] arg ) {
Corda nome utente = Sistema. getProperty ( 'nome utente' ) ;
Sistema. fuori . println ( 'Nome utente che utilizza la proprietà di sistema: ' + nome utente ) ;

Corda classPath = Sistema. getProperty ( 'java.classe.percorso' ) ;
Sistema. fuori . println ( 'Il percorso di classe corrente dalla directory principale: ' + classPath ) ;

Sistema. fuori . println ( 'È stata utilizzata una proprietà errata: ' + Sistema. getProperty ( 'casa' ) ) ;

Sistema. fuori . println ( 'Le informazioni sulla versione JRE: ' + Sistema. getProperty ( 'java.runtime.versione' ) ) ;
Sistema. fuori . println ( 'L'architettura dell'attuale sistema operativo: ' + Sistema. getProperty ( 'os.arch' ) ) ;
}
}

Descrizione del codice sopra:





  • Innanzitutto, il vero proprietario o utente del sistema viene recuperato passando il ' nome utente ” proprietà nel “ System.getProperty() ' metodo.
  • Successivamente, la proprietà “ java.classe.percorso ” viene passato al “ System.getProperty() ” metodo per recuperare il percorso della classe corrente dalla directory principale.
  • Quindi, la falsa proprietà di ' casa ' è passato,
  • IL ' System.getProperty() 'metodo visualizzerà' nullo ” che indica che la proprietà non esiste.
  • Allo stesso modo, la versione di Java Runtime e l'architettura del sistema vengono recuperate passando il ' java.runtime.versione ' E ' os.arch ”, rispettivamente.

L'output mostra che i valori richiesti per le proprietà di sistema sono stati recuperati con l'aiuto del metodo 'System.getProperty()'.



Che cos'è il metodo System.getenv() in Java?

IL ' System.getenv() ” restituisce il valore corrispondente per la variabile di ambiente specificata. I valori restituiti sono dinamici e così come vengono impostati dal sistema operativo del sistema o dall'utente per la sessione corrente. Come il metodo 'System.getProperty()' se la variabile non viene trovata o non contiene alcun valore, il ' nullo ” viene restituito.

Ad esempio, visita il codice seguente:

classe rootClass {
//Inizializzazione del metodo del driver
pubblico statico vuoto principale ( Corda [ ] arg ) {
Sistema. fuori . println ( 'Recupero di valori utilizzando il metodo System.getenv()' ) ;

Corda percorsotemporaneo = Sistema. tenv ( 'TEMPERATURA' ) ;
Sistema. fuori . println ( 'Il percorso della cartella dei file temporanei è: ' + percorsotemporaneo ) ;

Corda sistema operativo = Sistema. tenv ( 'NUMBER_OF_PROCESSORI' ) ;
Sistema. fuori . println ( 'Il sistema Numero di processori contiene: ' + sistema operativo ) ;

Corda windowsDirectory = Sistema. tenv ( 'vento' ) ;
Sistema. fuori . println ( 'Visualizzazione del percorso principale del sistema - ' + windowsDirectory ) ;
}
}

Spiegazione del blocco di codice sopra:

  • Innanzitutto, la classe viene creata con il nome ' rootClass ' e il ' System.getenv() ” viene utilizzato per restituire il percorso della cartella temporanea passando il “ TEMP ” come valore.
  • Successivamente, il numero di processori e la directory di Windows per il sistema vengono recuperati passando ' NUMBER_OF_PROCESSORI ' E ' windir ” al metodo “System.getenv()”, rispettivamente.

Dopo la compilazione:

L'output conferma che i valori della variabile di ambiente richiesti sono stati recuperati.

Differenza tra Java System.getProperty e System.getenv

La differenza tra i metodi System.getProperty() e System.getenv() è descritta di seguito nella tabella:

Termine System.getProperty() System.getenv()
Scopo Viene utilizzato per recuperare le proprietà di sistema specifiche della JVM. Viene utilizzato per recuperare variabili di ambiente specifiche per l'ambiente del sistema operativo.
Fonte Le proprietà di sistema sono in genere impostate come argomenti della riga di comando. Le variabili di ambiente sono impostate nell'ambiente del sistema operativo.
Accesso Può recuperare sia le proprietà di sistema che le variabili di ambiente. Può recuperare solo variabili di ambiente e richiede chiavi specifiche per la variabile.
Utilizzo Viene comunemente utilizzato per recuperare informazioni sulla JVM, come la versione Java. Viene comunemente utilizzato per accedere a configurazioni specifiche dell'ambiente o informazioni riservate.
Portabilità È indipendente dalla piattaforma e vi si può accedere in modo coerente su diversi sistemi operativi. Le variabili possono variare tra diversi sistemi operativi e possono avere comportamenti diversi.

Conclusione

IL ' System.getProperty() Il metodo ha accesso alle proprietà specifiche di Java e alla configurazione del sistema. IL ' System.getenv() ” accede alle variabili di ambiente definite nel sistema operativo. Tuttavia, entrambi sono adatti per restituire informazioni relative al sistema. Inoltre, hanno scopi simili per il recupero di informazioni sull'ambiente di sistema, ma operano su insiemi di dati diversi.