Newsgroup: it.comp.java
Titolo: Variabili di ambiente e classe Properties

Ho una piccola domanda relativamente all'utilizzo della classe Properties.
Tramite questa classe è possibile recuperare le variabili di sistema, ma se
definisco una mia variabile ( set MY_HOME= \Path\della\directory per windows
oppure export MY_HOME=/Path/della/directory per linux in qualche file di
inizializzazione del sistema operativo) non riesco a reperirla con la classe
in questione.
Infatti con il seguente esempietto mi tira fuori di tutto di più, tranne ciò
che serve a me:
Properties vProp= System.getProperties();
Enumeration vEnum=vProp.propertyNames();
String vPropName="";
while(vEnum.hasMoreElements())
{
    vPropName= (String) vEnum.nextElement();
    System.out.println("Proprietà "+vPropName+ "= " +(String)
vProp.get(vPropName));
}
Non posso (o non voglio, dipende dai punti di vista) passarla come parametro
dello script di lancio dell'applicazione, preferirei definirla a livello di
sistema, magari nella fase di installazione, ed averla sempre a disposizione
anche per eventuali altre applicazioni della stessa gerarchia.
Ho forse sbagliato approccio?
Qualche altra idea?
Ciao,
Oliviero.

 Qualche altra idea?
Perchè non richiami la variabile d'ambiente dallo script di lancio
dell'applicazione?
java -Dmy.home=$MY_HOME  (unix/linux)
java -Dmy.home=%MY_HOME% (MS/DOS)
Ciao, Cris
-- 
Cristian Veronesi ><((((º> 
http://www.crpa.it
"The more constraints one imposes, the more one frees oneself
 of the chains that shackle the spirit."  (I. Stravinsky)

java -Dmy.home=%MY_HOME% (MS/DOS)
Questa non la ricordavo, non è proprio quello che desideravo visto che
volevo evitare di dover mettere mano agli script di avvio e risolvere tutto
attraverso il codice Java, ma mi sa che almeno questa piega dovrò farla.
Ciao e grazie,
Oliviero.

farla. Ciao e grazie,
Nel caso tu abbia un effettivo problema di manutenzione nel far questo,
c'e' una via abbastanza semplice (almeno se hai una shell decente):
rinomini il launcher della JVM, e al suo posto metti uno script di
shell che aggiunge -D....=.... per ogni variabile d'environment
definita.
Cosi' facendo, gli script di avvio (che vedono di norma "java") possono
essere lasciati in pace.
Ovviamente cio' ha senso solo in situazioni drammatiche ;-)
-- 
God is Real, unless declared Integer.
ObjectZone - 
http://space.tin.it/computer/csadun

> Qualche altra idea?
Hai provato con la più semplice System.getProperty(...)?
E poi sei sicuro che la variabile sia effettivamente settata nel processo
della JVM?
Ad esempio mi sa che sotto Linux se setti una variabile di ambiente la devi
esportare se vuoi che sia visibile in altre istanze di shell.

 esportare se vuoi che sia visibile in altre istanze di shell.
SET con Win ed export con Linux, of course...
Quello che mi incuriosisce a questo punto è perchè mi veda le variabili PATH
e CLASSPATH, mentre non mi vede MY_VAR visto che tutte vengono create e
configurate nello stesso modo e nello stesso posto (autoexec.bat in Win9x,
nelle variabili di ambiente per WinNT/2000, /etc/profile in Linux)?



con la classe properties se non sbaglio puoi recuperare 
solo cio' che setti con l'opzione -D del comando java
java -Dxxx=yyy
oppure puoi con la classe ResourceBundle
leggere delle properties da file 
ciao
http://digilander.iol.it/schiele
http://jame.sourceforge.net