sexta-feira, 16 de dezembro de 2011

Acessar parâmetros da JVM de dentro do programa

Existem alguams situação em que achamos que nunca cairemos. Ultimamente me ocorreu uma: precisei passar parâmetros para minha aplicação web, em sua inicialização, sem que os valores destes parâmetros ficassesm dentro do pacote ".war", e sem que fossem lidos de arquivo ou base de dados. Para isso foi adotada a estratégia de adicionar parâmetros na inicialização da JVM, e acessá-los a partir da aplicação.
A maior dúvida que tive foi, como acessar os parâmetros da JVM de dentro da aplicação.
Para isto a dica é simples: a classe RuntimeMXBean fornece o acesso a estes parâmetros.
Sua utilização é muito simples conforme a seguir:

RuntimeMXBean runtimemxBean = ManagementFactory.getRuntimeMXBean();
List arguments = runtimemxBean.getInputArguments();

Na lista "arguments" temos a lista de todos os parametros passados na inicialização da JVM junto com seus respectivos valores em cada linha. No meu caso, tive que passar parametros personalizados, que nao são da lista de parâmetros nativos da JVM. Fiz isto configurando o servidor de aplicação para adicionar aos parametros passados para a JVM a seguinte entrada:

-DismaelParametro="valor"

Com isto, na lista "arguments" procurei por uma linha que começasse com "-DismaelParametro" e lá estava!

Muito obrigado!


Referência:
RuntimeMXBean

Nenhum comentário:

Postar um comentário