Problema ao usar classe de outro projeto

3 respostas
classesjsftomcat
G

Bom Dia,
Estou com um problema há alguns dias que não consigo resolver, já procurei em vários tópicos, até achei algo parecido mas ainda não consegui resolver o meu problema.
Eu tenho um classe Funcoes.java em um projeto web em jsf utilizando Maven e quero utilizá-la em outro projeto novo mas sem ser por .jar pois não quero compilar toda vez que for alterada e sim já pegar as alterações quando compilar o projeto.

Já fiz os seguintes passos:
1 - Project -> Properties -> Java References
2 - Project -> Properties -> Java Build Path
E adicionei o projeto que quero utilizar a classe neste projeto novo. Coloquei o import e o projeto novo passou a enxergar a classe que quero usar e não deu erro no eclipse, porém ao iniciar o tomcat, na hora que preciso da classe dá o erro ClassNotFoundException.

Após mais um tempo de pesquisa resolvi adicionar no classpath do tomcat o projeto também e aparentemente agora em execução enxerga a classe Funcoes.java do outro projeto, mas agora está dando problema no import desta classe Funcoes.java como este erro abaixo:

Caused by: java.lang.ClassNotFoundException: org.hibernate.Query

Acredito que seja porque o tomcat ficou confuso ao usar este import já que os dois projetos têm a mesma jar do hibernate e não sei como resolver isto e resolvi vim pedir ajuda aqui.
Não sei se é o jeito certo de usar a classe de outro projeto, se é realmente assim ou se tem outra forma mas não estou conseguindo resolver o problema.

Espero que tenham entendido o problema e agradeço desde já.

3 Respostas

D

Cara, pra começar, o ideal seria isolar estas classes que você quer reutilizar em um jar específico, a fim de facilitar esse processo.
Segundo, você só vai conseguir fazer com que funcione após recompilar todos os projetos, gerar os respectivos jars e, então, compilar o projeto principal.
Por que não tenta usar maven? Vai facilitar isso para ti.

G

Então Darlan, eu não queria gerar o jar porque senão toda vez que tiver uma alteração nesta classe terei que compilar ela novamente, já queria algo mais automático.
Esqueci de mencionar mas já estou utilizando maven…

D

Não sei quanto você conhece de java e geração de artefatos, mas, sim, toda vez que você precisa r alterar algo nessa classe, precisará compilar.

Se usar maven e estiver trabalhando com módulos, ao compilar o módulo principal (aquele que possui referência a todos os projetos dependentes), a compilação dos outros ocorre antes.

Criado 11 de abril de 2019
Ultima resposta 11 de abr. de 2019
Respostas 3
Participantes 2