Boa noite pessoal.
Fiz uma busca no forum, e não achei nada que me suprisse a duvida, então peço desculpas se o tópico estiver repetido.
A questão é a seguinte:
Tenho uma porção de classes que desenvolvi, e resolvi criar uma pequena api para reutiliza-las em outros projetos.
Gostaria de saber como que eu crio um jar, que possa ser adicionado posteriormente ao build path da aplicação.
Cheguei a gerar vários jars, só que sempre tenho o NoClassDefFoundError.
Acredito que tenha que ser feita alguma coisa no manifest, porém nada do que fiz funcionou, e tudo o que encontro por ai, são pessoas tentando criar um jar executável, e esse não é o meu caso.
Nas minhas classes, não tenho nenhuma com o metodo main, são classes genéricas e tem vários propositos, e devem ser chamadas dentro de uma aplicação que terá o main.
Alguém sabe como faze-lo.
obrigado.
Não há nada de especial nisso, basta criar o arquivo .jar com seus arquivos .class. Apenas certifique-se de que as classes e métodos da sua API são públicos.
Olá.
Eu também acreditava que não havia nada de especial nisso, afinal, era só criar um jar.
Enfim, eu crio o Jar (usando o export do Eclipse), todas as minhas classes e metodos são publicos.
Porem, sempre da o mesmo erro quando eu coloco o jar em outro projeto
java.lang.NoClassDefFoundError
Por algum motivo, ele não consegue encontrar as classes que estão no jar.
Quando queremos criar um jar executável, temos que apontar no manifest onde está o ponto de entrada da aplicação.
Neste caso, não tem um ponto de entrada, apenas classes que podem ser chamadas e ter seus metodos utilizados
Alguma ideia do que pode estar acontecendo?
Boa tarde.
Consegui resolver em partes o problema.
O jar estava sendo gerado corretamente:
Não estou entendendo direito o porque que isso acontece mas é o seguinte:
O que eu estou desenvolvendo é um app em j2me, e criei uma porção de classes que vão facilitar a minha vida na hora de desenvolver e queria criar um pacote e só importar nos projetos.
Estava com o erro : java.lang.NoClassDefFoundError, toda vez que eu criava o jar, e importava ele no projeto.
No pc eu resolvi isso colocando o meu jar no CLASSPATH do SO. Agora no emulador roda sem problemas.
Eu já havia colocado o jar na build path no eclipse, mas nada de funcionar.
Agora, o problema é outro, quando gero o pacote e mando por celular, recebo o mesmo erro, mesmo tendo copiado o jar das minhas classes para dentro do projeto, e adicionado o mesmo na build path.
Se alguém tiver alguma sugestão.
Bom, problema resolvido.
Realmente o problema não estava na criação do jar em si, eu achei que era porque não parecia ser outra coisa.
O que acontece é o seguinte:
Para vc colocar um jar externo no seu projeto, alem de coloca-lo no build path, vc deve ir em configure build path >> Order and Export e marcar lá todos os
jars que vc deseja carregar com o seu projeto. Ai eles serão incluídos no projeto.
Só que existe um detalhe:
Para isso funcionar, você deve ir em window >> preferences >> java >> Installed JREs
Neste local você deve verificar se o eclipse está apontando para uma jdk e não para uma jre.
Se estiver apontando para uma jre, vc deve então configurar para que aponte para uma jdk, e ai sim, as coisas vão funcionar.
Obrigado rmendes08, por ter tentado ajudar, e o que vc falou estava certo, embora eu tenha achado que não, justamente por já ter feito o que vc disse, mas valeu.
Bom, está ai a resposta para quem quiser e precisar um dia.
Gere o seu jar normalmente, e depois verifique as configurações como descrito acima.
Abraços.