Jar de terceiros

4 respostas
A

Bom dia pessoal, criei um projeto no netbeans q usa um jar do mysql chamado driver.jar e alguns do ireport. Dentro do netbeans o sistema funciona perfeito, porém qdo gero o .jar ele naum funciona a parte de relatorios nem a parte de acesso ao bd. Pergunto no netBeans tem como gerar um arquivo.jar com jar de terceiros, ou no proprio j2sdk qdo inicar a maq carregar esses jar para ser usado futuramente.

Abracos
Adriano

4 Respostas

C

Olá adrianotopete

O arquivo JAR que o Netbeans gera só contém as classes do seu projeto (as que você criou), não as utilizadas por você. Criar JAR com outros JAR dentro, eu acho que pode :roll: (já que arquivos JAR são arquivos comprimidos…), mas aí acho que não vai funcionar como você quer. Alguém me corrija se isso der certo :grin: .

O que você pode fazer é, na hora de rodar a classe, deixar o classpath apontando pros arquivos JAR do MySQL e dos seus relatórios e rodar pela sua classe (e não pelo JAR das suas classes). Por exemplo (Linux):

java -cp driver.jar:ireport.jar:[todos os outros JAR]:. pacote.ClassePrincipal

Para o Windows, é só trocar os dois-pontos por ponto-e-vírgula, como caractere de separação de diretórios. Faça um arquivo .sh (ou .bat, no Windows) com essa linha e execute através dela. Sem problemas :wink:

Uma coisa que eu descobri apanhando há um tempo atrás é que você não pode executar uma classe dentro de um arquivo JAR e definir um classpath para seu programa. Por quê? Eu vi isso em algum lugar no site da Sun, não encontrei de novo agora… quando [se] eu achar eu posto aqui. Dizia que uma vez que você especificou pra rodar uma aplicação com -jar, todo o classpath dela será ele, então não adianta setar outro na linha de comando… Bem, eu acho que foi isso que eu li :razz:

Mas enfim, dessa forma que eu mostrei creio que dá pra rodar. Beleza?

Até mais,

B

adiciona o caminho no seu classpath e creio que resolve!

A

“CD1”:
Olá adrianotopete

O arquivo JAR que o Netbeans gera só contém as classes do seu projeto (as que você criou), não as utilizadas por você. Criar JAR com outros JAR dentro, eu acho que pode :roll: (já que arquivos JAR são arquivos comprimidos…), mas aí acho que não vai funcionar como você quer. Alguém me corrija se isso der certo :grin: .

O que você pode fazer é, na hora de rodar a classe, deixar o classpath apontando pros arquivos JAR do MySQL e dos seus relatórios e rodar pela sua classe (e não pelo JAR das suas classes). Por exemplo (Linux):

java -cp driver.jar:ireport.jar:[todos os outros JAR]:. pacote.ClassePrincipal

Para o Windows, é só trocar os dois-pontos por ponto-e-vírgula, como caractere de separação de diretórios. Faça um arquivo .sh (ou .bat, no Windows) com essa linha e execute através dela. Sem problemas :wink:

Uma coisa que eu descobri apanhando há um tempo atrás é que você não pode executar uma classe dentro de um arquivo JAR e definir um classpath para seu programa. Por quê? Eu vi isso em algum lugar no site da Sun, não encontrei de novo agora… quando [se] eu achar eu posto aqui. Dizia que uma vez que você especificou pra rodar uma aplicação com -jar, todo o classpath dela será ele, então não adianta setar outro na linha de comando… Bem, eu acho que foi isso que eu li :razz:

Mas enfim, dessa forma que eu mostrei creio que dá pra rodar. Beleza?

Até mais,

Tentei assim coloquei o Almoxarifado.jar arquivo criado pelo netBeans
e o driver.jar, driver mysql baixado no c:

ficou assim?
no C:
executei.

java -cp Almoxarifado.jar ;driver.jar

tentei so com o mysql para ver se dava certo, ai ele me retornou o seguinte
Exception in thread “main” java.lang.NoClassDefFoundError: ;
tentei tb
java -cp Almoxarifado.jar ; [driver.jar]
mesmo erro.

Galera vlw mesmo pelo help, estou meio perdido nessa fase do projeto.

Adriano

B

Adriando, era pra vc tentar assim:

java -cp Almoxarifado.jar; driver.jar; seu.pacote.ClasseQueContemMetodoMain
Criado 26 de julho de 2005
Ultima resposta 26 de jul. de 2005
Respostas 4
Participantes 3