Erro compilando no iReport

10 respostas
M

Descompactei o iReport 0.5.0 e segui todos os passos para que ele funcione:

  • coloquei o arquivo tools.jar no C:\iReport-0.5.0\lib
  • configurei o classpath (C:\iReport-0.5.0\lib e C:\ant\lib) e path (C:\iReport-0.5.0\bin e C:\ant\bin)

Ao compilar surgiu a seguinte mensagem

Compiling to file C:\Temp\classic.jasper -> C:\Temp\classic.java

Error compiling the report java source!

java.lang.NoClassDefFoundError

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

at java.lang.Class.forName(Class.java:141)

at it.businesslogic.ireport.IReportCompiler.class$(IReportCompiler.java:1178)

at it.businesslogic.ireport.IReportCompiler.getClassLoader(IReportCompiler.java:1178)

at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:412)

at java.lang.Thread.run(Thread.java:534)

Como sou iniciante não consigo analisar do que se trata.

Pessal, me dê uma ajudinha, por favor.

Obrigado

10 Respostas

J

Tenta incluir o diretório “atual” no classpath.

Se o seu classpath está:
SET CLASSPATH = C:\iReport-0.5.0\lib;C:\ant\lib;

faça:
SET CLASSPATH = C:\iReport-0.5.0\lib;C:\ant\lib;.;

M

Amigo,

Fiz as alterações :
CLASSPATH=C:\ant\lib;.;C:\iReport-0.5.0\lib;.;C:\JBuilderX\jdk1.4\lib;.;C:\jasperreports-0.6.7\lib;.;

PATH=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\ant;C:\ant\bin;.;C:\iReport-0.5.0\bin;.;C:\iReport-0.5.0;C:\JBuilderX\jdk1.4\bin;.;

mas apresentou a seguinte mensagem:

[size=18]Compiling to file C:\Temp\basic.jasper -> C:\Temp\basic.java

Error compiling the report java source!

java.lang.NoClassDefFoundError: org/apache/log4j/Layout

at org.apache.commons.logging.impl.Log4jFactory.getInstance(Log4jFactory.java:140)

at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:257)

at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:390)

at net.sf.jasperreports.engine.design.JRJdtCompiler.<clinit>(JRJdtCompiler.java:70)

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

at java.lang.Class.forName(Class.java:141)

at it.businesslogic.ireport.IReportCompiler.class$(IReportCompiler.java:1178)

at it.businesslogic.ireport.IReportCompiler.getClassLoader(IReportCompiler.java:1178)

at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:412)

at java.lang.Thread.run(Thread.java:534)[/size]
J

Só precisa de um “.” no classpath (no path nem precisa). Assim:

CLASSPATH=C:\ant\lib;C:\iReport-0.5.0\lib;C:\JBuilderX\jdk1.4\lib;C:\jasperreports-0.6.7\lib;.;

PATH=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\ant;C:\ant\bin;C:\iReport-0.5.0\bin;C:\iReport-0.5.0;C:\JBuilderX\jdk1.4\bin;.;

Você alterou e resetou a máquina?

M

JavaDrops, realmente eu não reiniciei a máquinas após alterar o path e classpath. Eu reinicie mas continua dando a mesma mesagem:

Compiling to file C:\Temp\Gray2.jasper -> C:\Temp\Gray2.java

Error compiling the report java source!

java.lang.NoClassDefFoundError: org/apache/log4j/Layout

at org.apache.commons.logging.impl.Log4jFactory.getInstance(Log4jFactory.java:140)

at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:257)

at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:390)

at net.sf.jasperreports.engine.design.JRJdtCompiler.<clinit>(JRJdtCompiler.java:70)

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

at java.lang.Class.forName(Class.java:141)

at it.businesslogic.ireport.IReportCompiler.class$(IReportCompiler.java:1178)

at it.businesslogic.ireport.IReportCompiler.getClassLoader(IReportCompiler.java:1178)

at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:412)

at java.lang.Thread.run(Thread.java:534)

Valeu pela força. Se você tiver outra idéia eu lhe agradeço.

M

Mauricio,

O seu problema neste caso é que provavelmente você não baixou a versão completa do iReport, a versão que vem com todas as libs.
Ele está dando alguns erros porque não acha as todas as libs necessárias para ele compilar o relatório.
Não é necessário alterar seu classpath, basta que todas as libs estejam sob o diretório lib do iReport, pois qdo você executa a bat para acionar o relatório ele coloca automaticamente todas as libs no classpath.
No seu diretório lib deverão estar as seguintes bibliotecas:
barbecue (versão)
bsh(versão)
commons - beanutils, collections, digester, logging, logging-api
groovy-all
hsqldb
iReport
itext(versão)
jaspereports(versão)
jcmdline(versão)
jcommon(versão)
jdt-compiler
jfreechart(versão)
jr-bsh-compiler
jr-groovy-compiler
log4j(versão)
looks(versão)
poi(versão)
tinylaf
xalan
xercesImpl
xmlParserAPIs

Se estiver faltando estas libs, é necessário baixar novamente o iReport
http://prdownloads.sourceforge.net/ireport/iReport-0.5.0.zip?download

[]'s
Mel

M

Melissa,

Verifiquei na pasta lib e consta todas as bibliotecas que você listou. De fato o programa não esta encontrando alguma biblioteca. Não sei porquê.
Inclusive no propet do DOS apresenta a seguinte mensagem:

[color=“red”]Exception loading cID = gui.OptionsDialog.LabelEnableTextResizeClick: Can’t find resource for bundle java.util.PropertyResourceBundle, key gui.OptionsDialog.Lab
elEnableTextResizeClick[/color]

Não sei se tem haver com o problema.

Valeu pela força, Mel. :grin:

Mauricio

M

Mauricio,

Os erros que estão ocorrendo são bastante estranhos, no caso deste erro que está aprecendo na janela do Dos é um erro sobre não encontrar uma mensagem no arquivo de internacionalização.
Tente baixar novamente o iReport e depois apenas descompacte-o.
Em relação ao tools.jar, não precisa copiá-lo, basta apenas que você referencie o tools.jar em seu classpath da máquina.
Caso não dê certo, peço que escreva todas as versões que você está utilizando na máquina (Java, iReport, JasperReports).
Aguardo seu retorno pelo menos pra saber se deu certo, ok ?

Até mais,

Mel

M

Fiz o que vecê falou. Baixei um novo iReport, descompactei e executei o iReport.bat deste programa (tomando o cuidado para setar o path e o classpath no novo caminho). Mas, infelizmente, permaneceu o erro.

As verções que estou usando são:

iReport-0.5.0

jasperreports-0.6.7

ant-1.6.5

jdk1.4

Será alguma incompatibilidade entre as versão que estou usando?

Mauricio

M

Mauricio

Com certeza o problema é a versão do JDK.
Existem duas opções neste caso, ou você baixa uma versão anterior do iReport (não tenho certeza, mas acho que a versão 0.4.0, no site existe a especificação da última versão compilada em 1.4) ou então você pode baixar os fontes do iReport (0.5) e recompilá-lo em 1.4.

Caso esta alternativa não dê certo tente enviar uma dúvida no FAQ do iReort eles costumam responder rapidinho.

[]'s
Mel

M

Caso resolvido!!!

Como vc falou "Com certeza o problema é a versão do JDK. "

Resolvi baixar o j2sdk1.4.2 visto qua a versão 1.4.0 que eu usava foi o que o JBuilderX instalou. As duas versões do iReport - 0.5.0 e 0.4.0 - agora estão funcionando.

Obs; antes de baixar jdk 1.4.2 eu tentei usar o iReport 0.4.0 como voce recomendou mais deu pau. Ele compilava normalmente mas não apresentava na tela. Estranho não é?

Agora vou trabalhar com ele.

Mel, valeu pela sua ajuda e paciência. :slight_smile:

Mauricio

Criado 18 de julho de 2005
Ultima resposta 21 de jul. de 2005
Respostas 10
Participantes 3