/ / Java System.getEnv () - java, variabili, ambiente, getenv

Java System.getEnv () - java, variabili, ambiente, getenv

In mac OSX e in Linux CentOS, inserisco una nuova variabile di ambiente di sistema (ad esempio "MYAPP") usando .bashrc e .bash_profile. Ho anche riavviato il mio laptop (mac) e il mio server (linux).

Quando uso la riga di comando "env", quellavariabile d'ambiente mostrata con il valore corretto. Ma in qualche modo ogni volta che provo a scaricarlo in un'app Java (app desktop o web o EJB o servlet qualsiasi altra app java) in mac o linux, quella variabile di ambiente ("MYAPP") non viene recuperata.

Ho provato a scorrere tutte le variabili di ambiente che Java può recuperare e si scopre che recupera tutte le variabili di ambiente diverse da "MYAPP". Questo è molto strano

Qualcuno sa come risolvere questo?

risposte:

1 per risposta № 1

Hai fatto export MYAPP=...? L'esportazione della variabile lo rende disponibile per i processi figli, come java che viene eseguito dalla shell.


1 per risposta № 2

In Linux, se si imposta la variabile (o la si esporta) solo in una sessione bash, sarà disponibile per una sorta di sessione "sub", che è disponibile solo per il comando appena eseguito e nient'altro.

Probabilmente potresti usare il punto operatore in bash (chiamato anche comando "sorgente"). Dalla pagina:

Quando uno script viene eseguito utilizzando "source" viene eseguito all'interno della shell esistente, tutte le variabili create o modificate dallo script rimarranno disponibili al termine dello script.

Quindi potresti provare a farlo. export VARIABLE = valore, quindi esegui il tuo programma java. Questo è simile all'impostazione di una variabile in un terminale di Windows e quindi all'apertura di un nuovo terminale e aspettando che l'env var sia lì. Non ha vinto "t.

In questo modo, stai dicendo "questo comando"dovrebbe essere disponibile in questa sessione specifica (il processo della sessione) ". In altri termini, stai dicendo "imposta questo env var per la sessione bash che termina dopo aver eseguito questo comando di esportazione", quindi non esiste quando esegui il tuo programma Java.


0 per risposta № 3

Dopo aver definito ed esportato la variabile d'ambiente. Avvia il tuo IDE dallo stesso terminale.


0 per risposta № 4

Prova a scrivere

"$System.env.STOREPWD"