2017-03-29 6 views
0

JasperReportを使用する必要があります。以前IReport5.5を使用していましたが、Java 8ではiReportが動作しません。代わりに、JasperSoftStudio 6.3.1をインストールしてjrxmlファイルを設計しました。ライブラリ用JasperReportバージョン6.3 Java用

import java.sql.DriverManager; 
import java.sql.Connection; 
import java.sql.SQLException; 
import net.sf.jasperreports.engine.util.JRLoader; 
import net.sf.jasperreports.engine.JasperReport; 
import net.sf.jasperreports.engine.JasperFillManager; 
import net.sf.jasperreports.engine.JRExporter; 
import net.sf.jasperreports.engine.JRExporterParameter; 
import net.sf.jasperreports.engine.JasperFillManager; 
import net.sf.jasperreports.engine.JasperPrint; 
import net.sf.jasperreports.engine.JasperReport; 
import net.sf.jasperreports.engine.export.JRPdfExporter; 
import net.sf.jasperreports.engine.util.JRLoader; 
import net.sf.jasperreports.view.JasperViewer; 
import net.sf.jasperreports.engine.JasperCompileManager; 

public class Main { 

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

     Class.forName("org.postgresql.Driver"); 
     Connection conexion = DriverManager.getConnection(
       "jdbc:postgresql://127.0.0.1:5432/database", "postgres", 
       "password"); 


     JasperCompileManager.compileReportToFile(
       "input.jrxml", 
       "input.jasper"); 

     JasperReport reporte = (JasperReport) JRLoader.loadObject("input.jasper"); 
     JasperPrint jasperPrint = JasperFillManager.fillReport(reporte, null, conexion); 

     JRExporter exporter = new JRPdfExporter(); 

     exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 
     exporter.setParameter(JRExporterParameter.OUTPUT_FILE, new java.io.File("output.pdf")); 
     exporter.exportReport(); 


    } 
} 

しかし、JasperSoftStudioでjasperreport 5.2の古いバージョンを私のレポートを設計することを許可していません:

問題は、私はJavaコードのために非常によく受け入れjasperreport 5.2を使用する前にということです。ジャスパーバージョンをhttps://sourceforge.net/projects/jasperreports/files/jasperreports/から6.3.0に更新しましたが、今度は機能loadObjectは廃止予定です。 http://amanuva.blogspot.cl/2016/10/060-conexion-con-informes-desde-java.htmlに次のよう

import net.sf.jasperreports.engine.JasperCompileManager; 
import net.sf.jasperreports.engine.JasperExportManager; 
import net.sf.jasperreports.engine.JasperFillManager; 
import net.sf.jasperreports.engine.JasperPrint; 


public class JavaMainClass { 
    public static void main(String[] argv) throws Exception { 
     Class.forName("org.postgresql.Driver"); 
     Connection conexion = DriverManager.getConnection(
       "jdbc:postgresql://127.0.0.1:5432/database", "postgres", 
       "password"); 

     JasperReport jasperReport = JasperCompileManager.compileReport("input.jrxml"); 
     JasperPrint jprint = (JasperPrint) JasperFillManager.fillReport("input.jasper", null, conexion); 
     JasperExportManager.exportReportToPdfFile(jprint, "output.pdf"); 

    } 
} 

を見つけかのうソリューションを検索する。しかし、私はこのエラー

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 
    at net.sf.jasperreports.engine.util.JRLoader.<clinit>(JRLoader.java:81) 
    at net.sf.jasperreports.engine.JRPropertiesUtil.loadProperties(JRPropertiesUtil.java:102) 
    at net.sf.jasperreports.engine.DefaultJasperReportsContext.initProperties(DefaultJasperReportsContext.java:99) 
    at net.sf.jasperreports.engine.DefaultJasperReportsContext.<init>(DefaultJasperReportsContext.java:76) 
    at net.sf.jasperreports.engine.DefaultJasperReportsContext.<clinit>(DefaultJasperReportsContext.java:59) 
    at net.sf.jasperreports.engine.JasperCompileManager.getDefaultInstance(JasperCompileManager.java:200) 
    at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:575) 
    at JavaMainClass.main(JavaMainClass.java:57) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 13 more 

どれ提案が

+2

[NoClassDefFoundError:org/apache/commons/logging/LogFactory]の重複している可能性があります(http://stackoverflow.com/questions/25376089/noclassdeffounderror- org-apache-commons-logging-logfactory) –

答えて

0

歓迎されているあなたは、あなたからのApache commons-loggingライブラリが欠けているように見えるもらいますクラスパス。 Mavenのような依存関係管理ツールを使用していますか?そうでない場合は、開始するのが良い時期になるかもしれません。:)

関連する問題