Minha 1° vez aqui no GUJ e estou com uma dúvida…estou desenvolvendo uma aplicação com o eclipse, tenho uma classe Principal que é a interface da aplicação e estou querendo acessar um método atualize() de outra classe chamada DeletaFiles.
O trecho da Principal:
public static void atualize(){
File diretorio = new File(System.getenv("systemroot")+"\system32\spool\printers\");
File[] arquivos = diretorio.listFiles();
int aux = 0;
String output1 = "";
if(arquivos != null){
System.out.println("Verificando se há arquivos\n");
int length = arquivos.length;
output1 += "Arquivos: \n";
for(int i = 0; i < length; ++i){
File f = arquivos[i];
if(f.isFile()){
output1 += f.getName()+"\n";
aux++;
}
}
System.out.println("Tentando jogar no JTextPane\n");
Principal vai = new Principal();
try{
vai.jTextArea.setText(output1) ;
}catch (NullPointerException err){
System.out.println(""+err);
}
if(aux>=1){
try{
vai.jTextField.setText("Há pelo menos " + aux/2 + " arquivos presos na fila de impressão");
vai.jButton1.setEnabled(true);
vai.jMenuItem1.setEnabled(true);
}catch (NullPointerException err){
System.out.println(""+err);
}
}
else if(aux==0){
try{
vai.jTextField.setText("Não há arquivos presos na fila de impressão");
vai.jButton1.setEnabled(false);
vai.jMenuItem1.setEnabled(false);
}catch (NullPointerException err){
System.out.println(""+err);
}
}
}
}
Na Classe DeletaFiles eu chamo o método da seguinte forma:
Principal.atualize();
e ao rodar aparece o seguinte erro:
Exception in thread “Timer-0” java.lang.NullPointerException
at Fila.Principal.atualize(Principal.java:591)
at Fila.DeletaFiles$RemindTask.run(DeletaFiles.java:87)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
Minha 1° vez aqui no GUJ e estou com uma dúvida…estou desenvolvendo uma aplicação com o eclipse, tenho uma classe Principal que é a interface da aplicação e estou querendo acessar um método atualize() de outra classe chamada DeletaFiles.
O trecho da Principal:
public static void atualize(){
File diretorio = new File(System.getenv("systemroot")+"\system32\spool\printers\");
File[] arquivos = diretorio.listFiles();
int aux = 0;
String output1 = "";
if(arquivos != null){
System.out.println("Verificando se há arquivos\n");
int length = arquivos.length;
output1 += "Arquivos: \n";
for(int i = 0; i < length; ++i){
File f = arquivos[i];
if(f.isFile()){
output1 += f.getName()+"\n";
aux++;
}
}
System.out.println("Tentando jogar no JTextPane\n");
Principal vai = new Principal();
try{
vai.jTextArea.setText(output1) ;
}catch (NullPointerException err){
System.out.println(""+err);
}
if(aux>=1){
try{
vai.jTextField.setText("Há pelo menos " + aux/2 + " arquivos presos na fila de impressão");
vai.jButton1.setEnabled(true);
vai.jMenuItem1.setEnabled(true);
}catch (NullPointerException err){
System.out.println(""+err);
}
}
else if(aux==0){
try{
vai.jTextField.setText("Não há arquivos presos na fila de impressão");
vai.jButton1.setEnabled(false);
vai.jMenuItem1.setEnabled(false);
}catch (NullPointerException err){
System.out.println(""+err);
}
}
}
}
Na Classe DeletaFiles eu chamo o método da seguinte forma:
Principal.atualize();
e ao rodar aparece o seguinte erro:
Exception in thread “Timer-0” java.lang.NullPointerException
at Fila.Principal.atualize(Principal.java:591)
at Fila.DeletaFiles$RemindTask.run(DeletaFiles.java:87)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
se eu tirar o tratamento de exceção.
Como eu deveria proceder neste caso?
Desde já Agradeço.
[/quote]
Na classe Principal está todas as instâncias dos componentes como o JTextArea:
public JTextArea getJTextArea() {
if (jTextArea == null) {
jTextArea = new JTextArea();
jTextArea.setBounds(new Rectangle(17, 68, 316, 177));
jTextArea.setEditable(false);
jTextArea.setToolTipText("Lista de Documentos na Fila de Impressão ");
}
return jTextArea;
}
E eu instancio a classe Principal no Atualize porque ele é um método estático.
public static void atualize(){
File diretorio = new File(System.getenv("systemroot")+"\system32\spool\printers\");
File[] arquivos = diretorio.listFiles();
int aux = 0;
String output1 = "";
if(arquivos != null){
System.out.println("Verificando se há arquivos\n");
int length = arquivos.length;
output1 += "Arquivos: \n";
for(int i = 0; i < length; ++i){
File f = arquivos[i];
if(f.isFile()){
output1 += f.getName()+"\n";
aux++;
}
}
System.out.println("Tentando jogar no JTextPane\n");
Principal vai = new Principal();
vai.getJTextArea().setText(output1);
if(aux>=1){
try{
vai.getJTextField().setText("Há pelo menos " + aux/2 + " arquivos presos na fila de impressão");
vai.getJButton1().setEnabled(true);
vai.getJMenuItem1().setEnabled(true);
}catch (NullPointerException err){
System.out.println(""+err);
}
}
else if(aux==0){
try{
vai.getJTextField().setText("Não há arquivos presos na fila de impressão");
vai.getJButton1().setEnabled(false);
vai.getJMenuItem1().setEnabled(false);
}catch (NullPointerException err){
System.out.println(""+err);
}
}
}
}
Mas o resultado não foi esperado, ele teria que limpar o TextArea porque ele não encontraria nenhum arquivo e o aux seria 0, então ele teria que imprimir “Não há arquivos presos na fila de impressão” no TextField depois desabilitar o Botão e o MenuItem. Nenhuma destas condições aconteceu.
O estranho é que se eu chamar o método atualize do método main, funciona corretamente, mas se eu chamar de outra classe não funciona.
Tem como dizer o que foi que aconteceu? sabe o valor que fico o Aux?
tenta executar teu programa em modo debug (tanto eclipse quanto netbeans tem essa opção), coloque um breakpoint no inciio desse teu método e acompanhe passo a passo.
ah olhei agora seu código e vi que você ta pegando o textfield invez do textarea é isso mesmo que tu quer fazer?
você ta usando…
vai.getJTextField().setText("Não há arquivos presos na fila de impressão");
não seria isso?
vai.getJTextArea().setText("Não há arquivos presos na fila de impressão");
Está correto, o aux=0 e carrega no textfield vai.getJTextField().setText(“Não há arquivos presos na fila de impressão”);
O JTextArea é apenas pra exibir os arquivos presos na fila de impressão, já que não há arquivos na fila, tem que aparecer no JTextArea apenas “Arquivos:”, mas não acontece nada.
Problema do Ponteiro para nulo java.lang.NullPointerException é insolucionavel?
Tô usando o Eclipse com Mysql.
e tá com seguintes erros do java.lang.NullPointerException:
03/12/2009 09:18:41 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Arquivos de programas\Java\jre6\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Arquivos de programas/Java/jre6/bin/client;C:/Arquivos de programas/Java/jre6/bin;C:\orant\bin;C:\oracle\product0.1.0\Client_1\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;c:\Arquivos de programas\Microsoft SQL Server0\Tools\binn\;C:\ARQUIV~1\Borland\Delphi6\Bin;C:\ARQUIV~1\Borland\Delphi6\Projects\Bpl;C:\Arquivos de programas\Java\jdk1.6.0_17\bin
03/12/2009 09:18:42 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
03/12/2009 09:18:42 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 2306 ms
03/12/2009 09:18:42 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
03/12/2009 09:18:42 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.20
log4j:WARN No appenders could be found for logger (org.displaytag.filter.ResponseOverrideFilter).
log4j:WARN Please initialize the log4j system properly.
03/12/2009 09:18:45 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
03/12/2009 09:18:46 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
03/12/2009 09:18:46 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/312 config=null
03/12/2009 09:18:46 org.apache.catalina.startup.Catalina start
INFO: Server startup in 4136 ms
Erro: java.lang.NullPointerExceptionThu Dec 03 09:18:53 GMT-03:00 2009
java.lang.NullPointerException
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at br.com.maximaging.maxflow.dao.ClassConfiguracoes.<init>(ClassConfiguracoes.java:44)
at br.com.maximaging.maxflow.dao.ClassConexao.<init>(ClassConexao.java:25)
at br.com.maximaging.maxflow.dao.UsuarioDAO.validarUsuario(UsuarioDAO.java:942)
at br.com.maximaging.maxflow.facade.UsuarioFacade.validar(UsuarioFacade.java:210)
at br.com.maximaging.maxflow.web.actions.LoginAction.validarUsuario(LoginAction.java:116)
at br.com.maximaging.maxflow.web.actions.LoginAction.execute(LoginAction.java:53)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
erro conex
java.lang.NullPointerExceptionThu Dec 03 09:18:53 GMT-03:00 2009
java.lang.NullPointerException
at br.com.maximaging.maxflow.dao.ClassConfiguracoes.getTag(ClassConfiguracoes.java:65)
at br.com.maximaging.maxflow.dao.ClassConexao.<init>(ClassConexao.java:26)
at br.com.maximaging.maxflow.dao.UsuarioDAO.validarUsuario(UsuarioDAO.java:942)
at br.com.maximaging.maxflow.facade.UsuarioFacade.validar(UsuarioFacade.java:210)
at br.com.maximaging.maxflow.web.actions.LoginAction.validarUsuario(LoginAction.java:116)
at br.com.maximaging.maxflow.web.actions.LoginAction.execute(LoginAction.java:53)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
at br.com.maximaging.maxflow.dao.ClassBanco.setSql(ClassBanco.java:265)
at br.com.maximaging.maxflow.dao.UsuarioDAO.validarUsuario(UsuarioDAO.java:955)
at br.com.maximaging.maxflow.facade.UsuarioFacade.validar(UsuarioFacade.java:210)
at br.com.maximaging.maxflow.web.actions.LoginAction.validarUsuario(LoginAction.java:116)
at br.com.maximaging.maxflow.web.actions.LoginAction.execute(LoginAction.java:53)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
Já estou procurando a solução a semanas e não encontro. Alguém poderia me dizer qual é o problema???
Você sabe ler essa linguiça aí que você postou?
O que na classe ClassConfiguracoes.java, linha 44? O código estará no construtor da classe.
Ponha um breakpoint nessa linha, e veja o que está nulo.
descupe pela linguiça,
sou iniciante java,
tou tentando desenrolar essa linguiça,
já olhei em diversos forums mas não encontrei o problema,
o que é um breakpoint mesmo?
não to conseguindo resolver ha um tempo.
Há o erro é assim mesmo
são três vezes o java.lang.NullPointerException
vi em outras postagem que esse erro é de ponteiro para nulo,
mais não entendo como que as bibliotecas apontam pra nulo,
Esse sistema tem login e senha,
pensei que fosse so conectar com o banco, mas conectei,
mais o erro continuou.
Erro: java.io.FileNotFoundException: C:Arquivos de programasApache Software FoundationTomcat 6.0webappsS006.V3.01.AMCWebContentWEB-INFWebConfig.xml (O sistema não pode encontrar o arquivo especificado)Thu Dec 03 12:26:01 GMT-03:00 2009
java.io.FileNotFoundException: C:Arquivos de programasApache Software FoundationTomcat 6.0webappsS006.V3.01.AMCWebContentWEB-INFWebConfig.xml (O sistema não pode encontrar o arquivo especificado)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at br.com.maximaging.maxflow.dao.ClassConfiguracoes.<init>(ClassConfiguracoes.java:44)
at br.com.maximaging.maxflow.dao.ClassConexao.<init>(ClassConexao.java:25)
at br.com.maximaging.maxflow.dao.UsuarioDAO.validarUsuario(UsuarioDAO.java:942)
at br.com.maximaging.maxflow.facade.UsuarioFacade.validar(UsuarioFacade.java:210)
at br.com.maximaging.maxflow.web.actions.LoginAction.validarUsuario(LoginAction.java:116)
at br.com.maximaging.maxflow.web.actions.LoginAction.execute(LoginAction.java:53)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
O último erro está na classe br.com.maximaging.maxflow.dao.ClassConfiguracoes, dentro do construtor, na linha 44 (consegue interpretar o stacktrace?).
Você está criando um FileInputStream porém o nome dos arquivos simplesmente está sem barras! Deveria ser: “C:\Arquivos de programas…” ou “C:/Arquivos de Programas/…”.
Exatamente marcobiscaro2112 era isso mesmo.
quebrei a cabeça o dia inteiro no trabalho, mais no finalzinho do tempo po volta das 12:40 descobri era isso mesmo. graças a Deus! ufa! passei sufoco e era uma besteirinha de nada.
no arquivo que esta na WEB-INF tinha um arquivo chamado parameteralgumacoisa.proprietir
era exatamente isso tinha invertido a barra.
era mais ou menos assim:
errado -> objeto… = C:\Arquivos de programas\apache\tomcat…
correto -> objeto… = C:/Arquivos de programas/apache/Tomcat/webapps/projeto/WEB-INF/ parameteralgumacoisa.proprietir…
pensei que era conexão com o banco MYSQL
crie uma CLASSPATH = C:/arquivo de programa/apache/lib/mysql.x.x.x…x.jar no ambiente do sistema que foi essencial pra conexão.
além disso tinha que colocar o ip aonde tava o banco ao inves de localhost e o database certo.
o java.lang.NullPointerException significa que tava setando o no arquivo xxx.proprietir que tava no WEB-INF, também tinha que setar pros aruivos no tomcat no webapps, tava setando um caminho pra nulo, setando pra nenhum canto, por causa da barra que tem sua pecularidade.
tinha o projeto no eclipse e no webapps do TOMCAT.
Só sei que tava literalmente descascando o abacaxi!
Mais deu tudo certo. Graças a Deus.
mesmo assim valeu kra!
xatamente marcobiscaro2112 era isso mesmo.
quebrei a cabeça o dia inteiro no trabalho, mais no finalzinho do tempo po volta das 12:40 descobri era isso mesmo. graças a Deus! ufa! passei sufoco e era uma besteirinha de nada.
no arquivo que esta na WEB-INF tinha um arquivo chamado parameteralgumacoisa.proprietir
era exatamente isso tinha invertido a barra.
era mais ou menos assim:
errado -> objeto… = C:\Arquivos de programas\apache\tomcat…
correto -> objeto… = C:/Arquivos de programas/apache/Tomcat/webapps/projeto/WEB-INF/ parameteralgumacoisa.proprietir…
pensei que era conexão com o banco MYSQL
crie uma CLASSPATH = C:/arquivo de programa/apache/lib/mysql.x.x.x…x.jar no ambiente do sistema que foi essencial pra conexão.
além disso tinha que colocar o ip aonde tava o banco ao inves de localhost e o database certo.
o java.lang.NullPointerException significa que tava setando o no arquivo xxx.proprietir que tava no WEB-INF, também tinha que setar pros aruivos no tomcat no webapps, tava setando um caminho pra nulo, setando pra nenhum canto, por causa da barra que tem sua pecularidade.
tinha o projeto no eclipse e no webapps do TOMCAT.
Só sei que tava literalmente descascando o abacaxi!
Mais deu tudo certo. Graças a Deus.
mesmo assim valeu kra!
Acho que enviei duas vezes, antes de mais nada vai descupando os trantornos.
sou iniciante aqui.