我正在制作我的 JasperReports '(6.1.0版)项目的可运行jar,并在Unix系统中运行。默认情况下, JasperReports 引擎会在/tmp
目录中执行报告时生成一个 tmp 扩展名的文件。
我想将该路径指向其他目录,例如/home/tomcat
,我尝试在报告的 .jrxml 中使用以下属性
<property name="net.sf.jasperreports.compiler.temp.dir" value="./home/tomcat"/>
但仍无法正常工作 - 临时文件仍在/tmp
文件夹中创建。
答案 0 :(得分:1)
net.sf.jasperreports.compiler.temp.dir
属性的配置参考将Global列为属性范围。这意味着它只能全局配置,在报告级别设置将无效。
因此,您必须在jasperreports.properties
文件中设置属性(如果有的话)或通过net.sf.jasperreports.engine.DefaultJasperReportsContext.setProperty()
以编程方式设置。
但是,如果你想避免编译器临时文件的麻烦,你应该在应用程序的类路径中添加一个ECJ jar(例如this one)。使用ECJ编译器,报告编译不会生成任何临时文件。
答案 1 :(得分:1)
经过所有的研究,我终于得到了它。我们只需要在应用程序的运行配置中更改-Djava.io.tmpdir
变量的值
就像我的情况一样,我有一个可运行的jar,所以命令是:
java -Djava.io.tmpdir="/your/tempPath" -jar YourJarFileName
或者我们可以通过我们的应用程序中的代码设置System属性
System.setProperty("java.io.tmpdir","your\\tempPath");