如何设置jasper报表的相对类路径



我正在从swing应用程序创建一个jasper报告。当设置了绝对路径,但没有为相对路径生成一个时,它可以正常工作。生成代码的java代码是

 JasperDesign jd= JRXmlLoader.load("relative path");
    String sql = "";
    JRDesignQuery newQuery= new JRDesignQuery();
    newQuery.setText(sql);
    jd.setQuery(newQuery);
    JasperReport JASP_REP= JasperCompileManager.compileReport(jd);
    JasperPrint JASP_PRINT= JasperFillManager.fillReport(JASP_REP,null,conn);
    JasperViewer.viewReport(JASP_PRINT,false);

每当我尝试使用绝对路径时都会发生错误。数据源的xml代码是

<defaultValueExpression >
        <![CDATA["reports/report1.jasper"]]>
    </defaultValueExpression>

但是显示以下错误

java.io.FileNotFoundException: reports/report1.jasper (The system cannot find the path specified)

我从

得到了一些建议

http://forums.devshed.com/java -帮助- 9/relative -路径-的- subreport jasperreport - 309313. - html

如果您正在使用Jasper Swing应用程序,那么最佳实践路径必须是绝对的。只需将所有.jrxml文件编译为.jasper文件,并始终加载编译后的.jasper文件。它很快。

在应用程序外创建jaspers, images, styles文件夹。创建system/environment变量,如下所示:

JASPERDIR = "c:\app\jaspers";
STYLES = "c:\app\styles";
IMAGES="c:\appimages";

现在在swing应用程序中使用System.getenv()方法,传递变量名来读取路径。

通过这种方式您的swing应用程序每次都足够灵活。您可以随时更改images, styles, .jasper文件,而无需重新启动swing应用程序。

相关内容

  • 没有找到相关文章

最新更新