Usando ClassLoader para abrir uma tela de um outro jar?

7 respostas
fernandopaiva

Salve galera

Seguinte, eu tenho 2 projetos, Projeto1 e Projeto2 todos nos seus respectivos diretórios.

Bem, no diretório Projeto1 eu tenho um projeto1.jar e no Projeto2 tenho o projeto2.jar…No projeto2.jar eu tenho um JDialog Cidades q seria Cidades.class onde eu cadastro/consulta cidades no projeto, e no Projeto1 eu tenho um JDialog Empresa q seria Empresa.class.

No projeto1 qdo vou cadastrar uma nova empresa eu preciso inserir uma Cidade q é a cidade onde está a empresa, pra isso eu quero poder abrir esse JDialog(Cidades) Cidades.class q está no projeto2.jar

Andei lendo e pesquisando muito sobre isso, sobre ClassLoader e Reflection inclusive vi um tutorial aqui no guj sobre isso. Os materiais q encontrei não me ajudaram muito a entender como fazer, e tbm não encontrei algo especifico ao q preciso.

Como fazer isso ???

obrigado

7 Respostas

leonardobhbr

Amigo acho que sua arquitetura está errada, mas se voce não puder mudar voce pode tentar fazer o seguinte

try { Class classe = Class.forName("br.com.SuaTela"); JFrame frame = (JFrame) classe.newInstance(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); }

Detalhe não testei e não sei se funciona tambem

Ou se vc puder colocar no path da sua aplicação basta fazer import normal

ivo_costa

Se ele não puder fazer isso o código de cima não vai funcionar pq a vm não vai conseguir achar a classe.
Coloca o jar do projeto2 no path e seja feliz.

fernandopaiva

ivo costa:

Se ele não puder fazer isso o código de cima não vai funcionar pq a vm não vai conseguir achar a classe.
Coloca o jar do projeto2 no path e seja feliz.

Executando pelo NetBeans, como seria isso ???

obrigado

fernandopaiva

Opa, soh colocar no CLASSPATH.

rs

leonardobhbr

Se ele não puder fazer isso o código de cima não vai funcionar pq a vm não vai conseguir achar a classe.
Coloca o jar do projeto2 no path e seja feliz.

Depende ele pode colocar no classpath da VM

fernandopaiva

Qual seria a melhor maneira para solucionar isso ???
Não tem como eu encontrar esse .jar por uma URL algo como: new URL("/projeto1/projeto1.jar") ???

obrigado

fernandopaiva

Bem galera…consegui fazer o q precisava

aqui como fiz: http://guj.com.br/java/257694-tentando-implementar-um-ouvinte-#1343053

t+ ae

Criado 28 de outubro de 2011
Ultima resposta 9 de nov. de 2011
Respostas 7
Participantes 3