java - Birt 类 EngineException 的 NoClassDefFoundError

标签 java eclipse installation birt

有没有人成功将 Birt 库添加到项目的构建路径

我在 Eclipse 中使用 Help-->Install New Software 安装了 Birt,然后从官方网站复制粘贴 Birt 4.2.2 的链接。从网上下载了Birt,出现了一个新的透视图,即Report Design。除此之外没有图书馆,什么都没有。因此,我设计了我的报告并开始编写 Java 代码,以便将我的报告导出为 PDF,正如我在 Internet 上找到的那样。我写了以下内容:

// Export Birt report
        String format = HTMLRenderOption.OUTPUT_FORMAT_PDF;
        EngineConfig config = new EngineConfig( );
        config.setEngineHome( "C:\\Tools\\Eclipse\\plugins\\org.eclipse.birt.report.viewer_4.2.2.v201302041142\\birt" );
        HTMLEmitterConfig hc = new HTMLEmitterConfig( );
        HTMLCompleteImageHandler imageHandler = new HTMLCompleteImageHandler( );
        hc.setImageHandler( imageHandler );
        config.setEmitterConfiguration( HTMLRenderOption.OUTPUT_FORMAT_HTML, hc );
        ReportEngine engine = new ReportEngine( config );
        IReportRunnable report = null;
        String reportFilepath = "C:/Workspace/reports/new_report.rptdesign";
        try {
            report = engine.openReportDesign( reportFilepath );
        }
        catch ( EngineException e ) {
            System.err.println( "Report " + reportFilepath + " not found!\n" );
            engine.destroy( );
            return;
        }
        IRunAndRenderTask task = engine.createRunAndRenderTask( report );
        HTMLRenderOption options = new HTMLRenderOption( );
        options.setOutputFormat( format );
        options.setOutputFileName( "C:/Workspace/reports/output.pdf" );
        task.setRenderOption( options );
        task.setParameterValues( parametersMap );
        try {
            task.run( );
        }
        catch ( EngineException e1 ) {
            System.err.println( "Report " + reportFilepath + " run failed.\n" );
            System.err.println( e1.toString( ) );
        }
        engine.destroy( );
        return;

当然,我的构建路径中没有设置 Birt Library,所以所有 Birt 对象都是红色的。我手动添加了 Eclipse 的插件文件夹中存在的所有 Birt jar,所有红色都消失了。似乎一切都很顺利。当我运行它时,我得到:

java.lang.NoClassDefFoundError: org/eclipse/birt/report/engine/api/EngineException

当 org.eclipse.birt.report.engine.api 包存在于我的构建路径中时 并且 EngineException.class 存在于包中。我觉得我缺少一些 jar 文件。 我在 Birt 主页上搜索了解决方案,但一无所获。大多数教程都有关于如何构建报告的说明。但没有关于如何使用 Java 启动和运行该库的内容。

是否有标准或自动或官方方式将 Birt 库添加到 Eclipse? 它由 Eclipse 制作。它不应该那么困难。任何帮助将不胜感激。

最佳答案

你读过这个页面吗 -> http://wiki.eclipse.org/Servlet_Example_(BIRT)_2.1 也许您可以在那里找到一些提示。

关于java - Birt 类 EngineException 的 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17875747/

相关文章:

java - Spring中是否通过 Controller 中的RequestMapping禁止 "/error"路径?总是导致不明确的映射错误

javafx - 如何找出JavaFX版本

scala - 首次运行时无法下载 SBT(Scala 的构建工具)的依赖项

java - setSelectionBackGround() 不设置自定义渲染单元格的颜色

java - 在activiti中使用启动计时器启动多个进程

eclipse - 如何在 eclipse 中调试 Node.js 程序(使用 node-eclipse)?

android - 将 Android Eclipse 项目移动到工作区

visual-studio-2008 - Visual Studio 2008 安装项目 - 包括 .NET Framework 3.5

java - StringBuffer 已过时?

eclipse - 将 "External Tool Configurations"从一个 Eclipse 安装转移到另一个安装的快速方法?