gostaria muito da ajuda de vocês, estou com uma baita encrenca
Desenvolvi um programa que gera um relatorio em pdf usando o ireport, porém ao rodar pelo .jar ele nao gera o arquivo e não abre o relatorio
alguém poderia me ajudar por favor!!
Você colocou todas as bibliotecas do jasper (e suas dependências) no classpath da aplicação ???
Você esta carregando o arquivo .jasper (compilado) adequadamente ?
Poste o código que não funciona e o erro se estiver ocorrendo que fica mais facil…
O código está funcionando blz!!
Se eu rodar pelo netbeans, tranquilo, gera o arquivo,mas quando chamo pelo cmd ele nao faz nada!!!
[/quote]
Então deve ser problema de biblioteca mesmo.
Você verificou se todas as libs do jasper e dependências estão no classpath ???
Você deve colocar as libs e dependências do jasper reports…
No caso do jasper na versão que eu utilizo são estas:
jasperreports-4.7.0.jar
jasperreports-applet-4.7.0.jar
jasperreports-fonts-4.7.0.jar
jasperreports-javaflow-4.7.0.jar
As dependências vai depender muito do que seu relatório faz…
Você pode baixar o jasper e colocar todas as dependências…
Em linux você pode usar esse script aqui que fiz (ou portar ele para batch em windows… não é dificil, mas agora estou sem tempo para fazer isso):
#!/bin/sh
criarLibPath()
{
CP=""
if [ -d "$1"/Libs ]; then
for a in "$1"/Libs/*; do
CP="$CP":"$a"
done
fi
if [ -d "$1"/LibsExtra ]; then
for a in "$1"/LibsExtra/*; do
CP="$CP":"$a"
done
fi
if [ -d "$1"/LibsHibernate ]; then
for a in "$1"/LibsHibernate/*; do
CP="$CP":"$a"
done
fi
if [ -d "$1"/LibsJasper ]; then
for a in "$1"/LibsJasper/*; do
CP="$CP":"$a"
done
fi
}
INSTALLED_JAVA_HOME=/opt/Java/jre1.6.0_31
APP_DIR=/home/user/app
# Verificar java
if [ -d "$JAVA_HOME" -a -x "$JAVA_HOME/bin/java" ]; then
JAVACMD="$JAVA_HOME/bin/java"
elif [ -d "$INSTALLED_JAVA_HOME" -a -x "$INSTALLED_JAVA_HOME/bin/java" ]; then
JAVACMD="$INSTALLED_JAVA_HOME/bin/java"
else
JAVACMD=java
fi
criarLibPath "$APP_DIR"
TMP_CP=$CP
$JAVACMD -Xms64m -Xmx256m -cp "$CP" MainClass
PS: Fiz pequenas modificações no script por questões de privacidade.
Veja que as classe não estão sendo encontradas, provavelmente a versão do Ireport do Netbeans, não é a mesma do Eclipse!!!
Você tem que ver em qual versão do Ireport foi compilado seu relatório!!!
log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/groovy/control/CompilationFailedException
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.getConstructor(Unknown Source)
at net.sf.jasperreports.engine.JasperCompileManager.getCompiler(JasperCompileManager.java:690)
at net.sf.jasperreports.engine.JasperCompileManager.getEvaluator(JasperCompileManager.java:263)
at net.sf.jasperreports.engine.fill.JRFillDataset.createCalculator(JRFillDataset.java:457)
at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:379)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:88)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:103)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:61)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:153)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:55)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:276)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:745)
at repositorioProduto.gerar(repositorioProduto.java:46)
at principal.main(principal.java:25)
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.control.CompilationFailedException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 18 more