Definido e acessando programticamente uma variável de ambiente

Olá,

Para um framework que estou construindo, quero criar uma variável de ambiente para ele e acessa-la de forma programática. Como as variáveis J2EE_HOME, TOMCAT_HOME…

No meu caso seria JAMPDESKTOP_HOME. Alguêm já fez isso?

Obrigado,
Emerson A. Noronha

Qual a necessidade de ser uma variavel de ambiente?

System.getenv (“nome da variavel”)

Respondendo a pergunta do Pedrosa:

O framework citado(JAmpDesktop) possui alguns arquivos xml para configuração - então o suário deverá informar aonde estão esses arquivos. Então, temos duas opções:

1-) Utilizar o CLASSPATH;
2-) Criar e utilizar uma variável de ambiente prórpia.

Achei a segunda opção mais interessante, porque normalmente o classpath já fica com um conteúdo extenso. E separar o conteúdo do JAmpDesktop em uma variável prórpia trará mais legibilidade.

O que vocês acham?

Att,
Emerson A. Noronha

Respondendo a thingol:

Então, acho que não coloquei a questão de forma clara. Preciso definir uma variável de ambiente específica para o arcabouço(framework) no qual estou trabalhando - imagine esse framework como um “swing container”.

A variável irá se chamar JAMPDESKTOP_HOME e o seu conteúdo deverá estar disponível nas propriedades da classe java.lang.System. Para acessar o conteúdo do CLASSPATH (como disse nosso colega) usamos:

System.getProperty(“java.class.path”);

Eu quero acessar a variável JAMPDESKTOP_HOME da mesma forma:
System.getProperty(“jampdesktop.path”);

A questão é: como fazer para que o conteúdo da variável JAMPDESKTOfique disponível no conjunto de propriedades da class java.lang.System com a chave jampdesktop.path

Muito obrigado pelas respostas… fico no aguardo para discutirmos mais…

Valeu,
Emerson Aguiar Noronha

Isso requer modificar seu script que inicia o seu sistema (por exemplo, run.bat, startup.sh etc.)

Em vez de

java bla bla bla SuaClasse

teríamos algo como (Unix/Linux)

java bla bla bla -Djampdesktop.path=$JAMPDESKTOP_HOME SuaClasse

ou (Windows)

java bla bla bla -Djampdesktop.path=%JAMPDESKTOP_HOME% SuaClasse

Putz, não dá para ser com script…

Se não me engano, o log4j tem um esquema parecido… tipo o esquema do log4j…

Feito. Tive que fazer algumas brincadeiras com o classLoader do contexto de iniciação da aplicação. Agora, a configuração dos arquivos xml são encontradas no CLASSPATH ou na variável JAMPDESKTOP_HOME.

Valeu,
Emerson Aguiar Noronha

emersonan,

Estou com um problema parecido com o seu. Só que no meu caso, a minha aplicação é um repositório de negócio, implementado com EJB, que está “deploiado” num application server ORACLE.

Por uma serie de fatores, preciso ter uma variável de ambiente pra informar algumas propriedades que podem ser alteradas sem a necessidade de redeploy.

Enfim, cara…

Como você resolveu o seu problema?

Resolvi com System.getenv(“MINHA_VARIAVEL”).

Tá belezinha!