RESOLVIDO
Gerei jar com eclipse, mas internalframe q acessam o postgresql nao abrem (RESOLVIDO)
15 Respostas
Coloca os jar do externos ao seu projeto no classpath
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)
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.
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
o problema é um java.lang.NullPointerException.
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.
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
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)?
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
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??
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…
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…
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 fileToda 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.jarNesse 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…
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)
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 funcionaObrigado
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…