Código com erro

5 respostas
R

Fala pessoal, td bem?
Eu estou desenvolvendo uma interface que gera relatorios, os quais já estão prontos no iReport. O código abaixo nao mostra nenhum erro (no eclipse) antes de compilar. Entretando dps que compila, na console, aparece o erro. Já tentei modificar a linha 25, mas continua dando erro.
O código e o erro estao abaixo.
Por favor, me ajudem.
Obrigado.

Rodrigo

import net.sf.jasperreports.engine.*;

import net.sf.jasperreports.view.*;

import java.sql.*;

import java.util.*; 
 


public class teste_sistema{

      private static final String driver ="sun.jdbc.odbc.JdbcOdbcDriver";

      private static final String url ="jdbc:odbc:nome_da_fonte_de_dados"; 


      private static final String pdf = "relatorio_func_aposentados.pdf"; 
 


      public static void main (String args[])throws Exception{ 


            Class.forName(driver);

            Connection conn = DriverManager.getConnection(url);

            Statement stm = conn.createStatement( );

            String query = "SELECT MATRICULAN, NOME, CARGO, LOTACAO FROM Empregados WHERE LOTACAO = 'Aposentado' ORDER BY NOME";

            ResultSet rs = stm.executeQuery( query );

            JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);

            HashMap parameters = new HashMap(); 


            /* Preenche o relatório com os dados. Gera o arquivo rel_funcionarios_aposentados.jrprint */

            JasperFillManager.fillReportToFile("C:/bin/eclipse/plugins/iReport-0.4.1/rel_funcionarios_aposentados.jasper", parameters, jrRS);

            /* Exporta para o formato PDF */

            JasperExportManager.exportReportToPdfFile("rel_funcionarios_aposentados.jrprint");

            /* Preenche o relatorio e o salva diretamente em arquivo PDF. Sem a necessidade do .jrprint */

            JasperRunManager.runReportToPdfFile("C:/bin/eclipse/plugins/iReport-0.4.1/rel_funcionarios_aposentados.jasper", parameters, jrRS);

            /* Visualiza o relatório em formato PDF */

            JasperViewer.viewReport(pdf, false);

      }

}

Erro que é mostrado:

Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jdt/internal/compiler/env/INameEnvironment

      at java.lang.Class.getDeclaredConstructors0(Native Method)

      at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)

      at java.lang.Class.getConstructor0(Unknown Source)

      at java.lang.Class.newInstance0(Unknown Source)

      at java.lang.Class.newInstance(Unknown Source)

      at net.sf.jasperreports.engine.design.JRDefaultCompiler.loadCalculator(JRDefaultCompiler.java:192)

      at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:370)

      at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:126)

      at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:118)

      at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:151)

      at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:472)

      at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:363)

      at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:319)

      at teste_sistema.main(teste_sistema.java:25)

5 Respostas

lucasap2005

Esse erro ocorre porque alguma classe que o jasper estão tentando usar não existem em seu projeto e algum biblioteca está ausente de seu classpath ou ate mesmo do seu projeto.
Tente adicionar essa biblioteca jdt-compiler.jar em seu lib e depois no classpath do seu projeto e veja se o erro persiste.

Abraços

R

Eu ja importei, mas agora o problema que ta dando eh esse aki:

Exception in thread "main" java.io.FileNotFoundException: C:\bin\eclipse\plugins\iReport-0.4.1\rel.jrprint
	at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:117)
	at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:121)
	at sist.main(sist.java:46)

NESTED BY :
net.sf.jasperreports.engine.JRException: C:\bin\eclipse\plugins\iReport-0.4.1\rel.jrprint
	at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:117)
	at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:121)
	at sist.main(sist.java:46)
Caused by: java.io.FileNotFoundException: C:\bin\eclipse\plugins\iReport-0.4.1\rel.jrprint
	... 3 more

Ja tentei modificar a linha 46, mas nao consegui. Por favor, me ajudem.
A linha 46 eh essa aki:

JasperExportManager.exportReportToPdfFile("C:/bin/eclipse/plugins/iReport-0.4.1/rel.jrprint");

Obrigado.
Rodrigo

lucasap2005
JasperExportManager.exportReportToPdfFile("C://bin//eclipse//plugins//iReport-0.4.1//rel.jrprint");

Tem que usar variável de scape

PadrE

hmmm…

o scape eh para barra invertida \ barra normal n precisa.

Mas tenta usar um protocolo, por exemplo

file://C:/bin/eclipse/…

Fui !

lucasap2005

Ops…Eskeci de inverter

JasperExportManager.exportReportToPdfFile("C:\\bin\\eclipse\\plugins\\iReport-0.4.1\\rel.jrprint");

Axo q assim funciona…rs…to com preguiça de testar.

Mas pensando em nível de compatibilidade, coloque os relatorios em alguma pasta do seu projeto e utilize os atributos retornados pelo método System.properties

Ex: Crie uma pasta report na raiz do seu projeto, dae vc referencia o relatorio assim:

String reportPath = System.getProperty("user.dir") + System.getProperty("file.separator") + "report" + System.getProperty("file.separator") + "rel.jrprint";

Assim fica mais elegante…Espero ter ajudado…abraços

Criado 24 de maio de 2008
Ultima resposta 26 de mai. de 2008
Respostas 5
Participantes 3