JVM - problema ao carregar versões diferentes do jar  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
rmalati
Virtual Machine Man
[Avatar]

Membro desde: 26/11/2007 09:10:30
Mensagens: 593
Localização: Jundiaí-SP
Offline

Fiz uma pesquisa mas não consegui encontrar nenhuma solução para o meu problema.

Imagine a seguinte situação:

tenho dois jars em versões diferentes (a maioria das classes se repetem mas com modificações em cada versão).

xpto001.jar e xpto002.jar

1- executo o xpto001.jar e a JVM carregas suas classes e roda corretamente.

2- sem encerrar a JVM executo o xpto002.jar, mas neste momento a JVM ainda utiliza o jar que foi carregado primeiro,
ou seja, está com as classes do xpto001.jar em memória e não da xpto002.jar. E isso é um problema!

Quero garantir que a cada chamada a JVM utilize as classes corretas do JAR que eu estiver executando
e não faça o reaproveitamento de instâncias já carregadas na memória.


Sem ter que matar a JVM, existe alguma forma de fazer com que ela interprete um jar independente do outro?
Ou alguma forma de limpar a memória e fazer com que a cada chamada ela carregue as classes do jar corretamente?

Se alguém puder ajudar, eu agradeço.

Valeu.


Rodrigo Malatesta Barbosa
Graduando em Tecnologia Informática Unicamp
SCJP 1.6 - 93%

"A disciplina é o caminho mais curto para o sucesso"
"Se não puder destacar pelo talento, vença pelo esforço. (Provérbio indiano)"
[Email] [MSN]
bombbr
Java Ninja
[Avatar]

Membro desde: 20/02/2005 21:56:17
Mensagens: 256
Offline

rmalati wrote:
1- executo o xpto001.jar e a JVM carregas suas classes e roda corretamente.

2- sem encerrar a JVM executo o xpto002.jar, mas neste momento a JVM ainda utiliza o jar que foi carregado primeiro,
ou seja, está com as classes do xpto001.jar em memória e não da xpto002.jar. E isso é um problema!

Quero garantir que a cada chamada a JVM utilize as classes corretas do JAR que eu estiver executando
e não faça o reaproveitamento de instâncias já carregadas na memória.

Sem ter que matar a JVM, existe alguma forma de fazer com que ela interprete um jar independente do outro?
Ou alguma forma de limpar a memória e fazer com que a cada chamada ela carregue as classes do jar corretamente?

Se alguém puder ajudar, eu agradeço.


Se eu entendi bem o que vc necessita é de classloaders personalizados de forma que os seus JARs fiquem isolados um do outro.
Pesquise sobre ClassLoader.



"Não existe trabalho ruim. Ruim é ter que trabalhar." (Seu Madruga)
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team