Gerei jar com eclipse, mas internalframe q acessam o postgresql nao abrem (RESOLVIDO)

15 respostas
B

RESOLVIDO

15 Respostas

xandevieira

Coloca os jar do externos ao seu projeto no classpath

B

Olá colega já fiz isso e mesmo assim nao funciona, na pasta final do projeto tem o meu jar e uma pasta lib contendo os jar do postgreesql e do ireport e ao executar o meu jar da na mesma nao abre o formulario do cliente
(RESOLVIDO)

xandevieira

Executa seu jar por linha de comando “java -jar seuJar.jar” e veja se tem alguma mensagem.
Normalmente quando esse tipo de problema ocorre, roda na IDE e não roda o jar é problema de biblioteca que não no classpath.

B
olá caro colega avsouza

Testei como vc sugeriu e realmente exibe erro no terminal erro que nunca tinha visto antes

[codigo]

Connection Started

org.postgresql.Driver

java.lang.NullPointerException

at formularios.frmCadClientes.getCboEcivil(frmCadClientes.java:556)

at formularios.frmCadClientes.getPCliePF(frmCadClientes.java:339)

at formularios.frmCadClientes.getJContentPane(frmCadClientes.java:286)

at formularios.frmCadClientes.initialize(frmCadClientes.java:202)

at formularios.frmCadClientes.(frmCadClientes.java:192)

at formularios.frmPrincipal$1.actionPerformed(frmPrincipal.java:164)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)

[/codigo]

o estranho que exibe connection started ou seja a conexao é efetuada, como consigo pegar esses erros para corrigir com o eclipse ide que não exibe

xandevieira

o problema é um java.lang.NullPointerException.

A

Coloca o código de algumas linhas da classe “frmCadClientes.java” pra gente poder te ajudar e ter uma idéia do que pode estar ocorrendo.

B

Olá coro colegas, o problema que venho tendo ocorre nao só no cliente, mas bem como em todo o projeto, nao posto o codigo do cliente aqui porque é complexo e extenso, mais de 1000 linhas de codigos em diversas classes, ja o erro é identificado; ele não encontra o driver do postgresql… como havia mencionado, coloquei o driver dentro de uma pasta lib que está dentro a pasta do projeto porem ao lado da src e importei a no eclipse, verifiquei se havia colocado corretamente no seu java builder path e consta tb para exportação entao logo entendo que o driver deveria encontrar dentro de seu jar, o qual não está ocorrendo.
O mesmo la no classpath consta: postgresql-8.4-703.jdbc4.jar - esisloja/lib utilizado pelo eclipse ide para rodar o projeto o qual roda normalmente sem erro. Esse erro ocorreria se eu removesse o driver do postgresql da pasta lib

segue abaixo parte do erro listado no terminal

[codigo]

Session Started

Erro class path org.postgresql.Driver: não encontrado

Erro ao persistir query. Motivo:null

java.lang.NullPointerException

at dao.ecivil_dao.ListEcivil(ecivil_dao.java:35)

at formularios.frmCadClientes.getCboEcivil(frmCadClientes.java:556)

at formularios.frmCadClientes.getPCliePF(frmCadClientes.java:339)

at formularios.frmCadClientes.getJContentPane(frmCadClientes.java:286)

at formularios.frmCadClientes.initialize(frmCadClientes.java:202)

at formularios.frmCadClientes.(frmCadClientes.java:192)

at formularios.frmPrincipal$1.actionPerformed(frmPrincipal.java:164)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)

at javax.swing.AbstractButton.doClick(AbstractButton.java:374)

at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:829)

at javax.swing.plaf.basic.BasicMenuItemUI$Handler.menuDragMouseReleased(BasicMenuItemUI.java:939)

at javax.swing.JMenuItem.fireMenuDragMouseReleased(JMenuItem.java:585)

at javax.swing.JMenuItem.processMenuDragMouseEvent(JMenuItem.java:482)

at javax.swing.JMenuItem.processMouseEvent(JMenuItem.java:428)

at javax.swing.MenuSelectionManager.processMouseEvent(MenuSelectionManager.java:320)

at javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber.eventDispatched(BasicPopupMenuUI.java:860)

at java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Toolkit.java:2378)

at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2270)

[/codigo]

O erro listado acima mostra que java.lang.NullPointerException é que contem item null (nulo) claro como ha o Erro ao persistir consulta . Motivo:null poisi nao consegue efetuar a conenxao e retonar null

se nao encontra o driver nao efutaa connexao

Ai pergunto, como posso fazer para que o java encontra o driver dentro da pasta dele pois se descompactar o jar consta o src, bin, lib?

Segue trecho de codigo

Como trabalho com MVC tenho 1 classe central que processa os dados q é a connection
tenho as daos e as entidades e isso opera no formato de 3 camadas… o frmcadcliente tem combos que dependem de informações tais como o estado civil que é carregado pelo seu metodo

o metodo lista ecivil do dao é

[codigo]
sql=“select * from ecivil order by ecivil”;

ArrayList<ecivil_ent>ecivil = new ArrayList<ecivil_ent>();
rs=con.getinstancia().consulta(sql); //onde con verifica a conexao retorna a instancia da mesma pega a sql e manda para ser consutlado

while(rs.next()){

ecivil e = new ecivil();

e.setDescricao(rs.getString(descricao));

ecivil.add(e);

}
listaecivil = dao.ecivil.listaecivil();

qecivil = listaecivil.size();

if(ecivil>0){

for(int i=0; i< qecivil; i++){

cboecvil.additem(listaecivil);

}

}

[/codigo]

Desde já agradeço a colaboração dos colegas

A

Hum… vc montou um jar com tudo dentro ou vc montou um war/ear com os jars necessários?

Como vc fez o deploy da sua aplicação?

Em qual servidor de aplicação vc está fazendo os testes (JBoss/WebLogic/WebSphere)?

B

Olá caro colega Artur Drummond, sim eu gerei um jar e incluir a pasta src e a lib… tanto que se extrair os arquivos do jar terá 2 pasta principais sendo elas:

  • src
  • lib
    E se olhar o conteudo da src contem todo o projeto .class tais como formularios/clientes.class entre outros e em lib o driver utilizado para acessar o postgresql.

Desde já, agradeço

B

Olá caro colegas…
Fiz testes e mesmo utilizando driver externo a aplicação ele não efetua a conexão com o postgre, porém agora abre os formulários internalframes como o frmcadclientes, porém ele vem sem dados de apoio tais como combo de estados e cidades ficam vazias.
Se rodar o jar no terminal ele continua exibindo erro de classpath mesmo o driver estando no diretorio e no classpath do eclipse… se abrir o jar como gerenciador de pacotes consigo visualizar o driver do postgre dentro da pasta do projeto junto com a classe man.

Com o eclipse 3.6 funciona normalmente…

Por favor, alguém pode me ajudar??

maior_abandonado

na execução do seu jar acredito que não tenha encontrado o jar do seu banco de dados. Opções:

  • no manifest.mf do seu jar, apontar o endereço dos .jar das libs e onde for colocar o jar colocar as libs tb na máquina;

  • adicionar a execução do seu jar via linha de comando o argumento -cp e o endereço de cada lib separados por separador do seu so (; no windows e : no linux se bem me lembro)

  • quando você exportar o seu jar pelo eclipse, clica com o direito no projeto, vai em export, na janela que abre vai em “runnable jar file” em java e na tela seguinte você marca o radiobutton “extract required libraries into generated jar”. Neste caso você pode estar violando algumas licenças então eu não posso te recomendar esse, mas funciona se você quiser usar para testar…

B

Olá caro colega
testei exportar o jar pelo runnable jar file porém o eclipse hélios não permitiu finalizar, segui os passo da tela indiquei onde gerar o jar, porem a combo launch confifuration permanece bloqueado e o botão finish também fica bloqueado… dessa forma o meu projeto só exporta pelo método exportar jar file

Toda vez que quero exportar sigo os passo…
como eu utilizo a lib que permanece dentro da pasta do projeto e como eclipse funciona, verifico se está está para ser exportado e seleciono export > jar file e depois seleciono xclasspath, project do projeto e em seguida seleciono os 2 diretórios: src e lib. Um detalhe curioso é q se seleciona o src ele exibe os arquivos dele ja a lib fica em branco e se gerar esse jar e abrir pelo gerenciador de pacotes não consta um diretório lib porém se incluir uma lib externa do projeto definir para ser exportado junto e fazer todo o processo de exportação jar file e abrir o jar como gerenciador de pacotes a lib existe so que fica com um unico endereço ou seja se endereço fixo do usuario 1 porém se usar no usuario 2 nao abre o jar devido dentro do classpath estar procurando uma lib no caminho /home/usuario1/projeto/meujar.jar

Nesse usuario1 com o jar gerado dessa forma ele executa porém não acessa o banco de dados…

Não sei mesmo porque, pois fiz tudo possível e o jar gerado abre mas não efetua conexao…

Testei com o Eclipse Builder tester ele informa que o codigo java do projeto não consta erro e deveria gerar o jar e funcionar normalmente…

Por favor peço ajuda…

maior_abandonado

billrt:
Olá caro colega
testei exportar o jar pelo runnable jar file porém o eclipse hélios não permitiu finalizar, segui os passo da tela indiquei onde gerar o jar, porem a combo launch confifuration permanece bloqueado e o botão finish também fica bloqueado… dessa forma o meu projeto só exporta pelo método exportar jar file

Toda vez que quero exportar sigo os passo…
como eu utilizo a lib que permanece dentro da pasta do projeto e como eclipse funciona, verifico se está está para ser exportado e seleciono export > jar file e depois seleciono xclasspath, project do projeto e em seguida seleciono os 2 diretórios: src e lib. Um detalhe curioso é q se seleciona o src ele exibe os arquivos dele ja a lib fica em branco e se gerar esse jar e abrir pelo gerenciador de pacotes não consta um diretório lib porém se incluir uma lib externa do projeto definir para ser exportado junto e fazer todo o processo de exportação jar file e abrir o jar como gerenciador de pacotes a lib existe so que fica com um unico endereço ou seja se endereço fixo do usuario 1 porém se usar no usuario 2 nao abre o jar devido dentro do classpath estar procurando uma lib no caminho /home/usuario1/projeto/meujar.jar

Nesse usuario1 com o jar gerado dessa forma ele executa porém não acessa o banco de dados…

Não sei mesmo porque, pois fiz tudo possível e o jar gerado abre mas não efetua conexao…

Testei com o Eclipse Builder tester ele informa que o codigo java do projeto não consta erro e deveria gerar o jar e funcionar normalmente…

Por favor peço ajuda…

para configurar o que aparecerá no launch configuration você deve ir no menu run -> run configuration, na tela que abre você vai em java aplication no lado esquerdo (clique duplo para criar um novo), marca la o seu projeto e a classe com o método main e clica em apply e depois close.

ai você volta la no export, runnable jar file…

B

Olá colega maior_abandonado Obrigado
segui conforme você comentou e testei o rum, e logo apareceu a classe man no launch configurantion
e em seguida olhei o java path nas guias, precebi que havia uma pasta da lib do postgre no source o qual impedia o jar gerado ter acesso…
removendo ela e na pasta de library deixei que acesse o postgresql de dentro do proejto… e em segui gerei o jar pelo java runtable file
e pronto funciona…
Inacreditável pois o erro tão esdruxulo impedia o aplicativo ter acesso ao postgre no servidor e agora funciona
(RESOLVIDO)

maior_abandonado

billrt:
Olá colega maior_abandonado
segui conforme você comentou e testei o rum, e logo apareceu a classe man no launch configurantion
e em seguida olhei o java path nas guias, precebi que havia uma pasta da lib do postgre no source o qual impedia o jar gerado ter acesso…
removendo ela e na pasta de library deixei que acesse o postgresql de dentro do proejto… e em segui gerei o jar pelo java runtable file
e pronto funciona…
Inacreditável pois o erro tão esdruxulo impedia o aplicativo ter acesso ao postgre no servidor e agora funciona

Obrigado

só mais uma coisinha… quando for colocar o RESOLVIDO no titulo, coloque ele editando a primeira mensagem, da criação do tópico, não na ultima…

Criado 31 de janeiro de 2012
Ultima resposta 16 de fev. de 2012
Respostas 15
Participantes 4