如何在带有 OpenJDK11 的 IntelliJ IDEA 中使用 Jasper Reports
How to use Jasper Reports in IntelliJ IDEA with OpenJDK11
所以我一直在 JDK8(Netbeans 11.1 和 JavaFX 2)上使用 Jasper Reports,一切都很简单。现在,我正在使用 gradle(IntelliJ IDEA 和 JavaFX 14)从 JDK8 迁移到 OpenJDK11,并且我坚持使用 Jasper Reports。
我尝试添加依赖项 compile 'net.sf.jasperreports:jasperreports:6.12.2'
并成功下载了 jar 文件,但是当我转到我的代码并尝试导入必要的库时,我找不到它们。
这是我在 JDK8 中使用的代码(我认为在 OpenJDK11 中应该是相同的):
@FXML
public void print(ActionEvent actionEvent) {
// My report
JasperReport jreport = JasperCompileManager.compileReport("path\to\my\report\newReport.jrxml");
// The data source to use to create the report
JRBeanCollectionDataSource jcs = new JRBeanCollectionDataSource(list);
JasperPrint jprint = JasperFillManager.fillReport(jreport, null, jcs);
// Viewing the report
JasperViewer.viewReport(jprint, false);
}
这是我需要的库(net.sf 根本没有检测到,即使下载了 jar 文件):
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.view.JasperViewer;
所以经过一些研究和许多新问题,我想我找到了一个简单的解决方案:
- 将此依赖项添加到您的 gradle 项目(并构建它):
implementation 'net.sf.jasperreports:jasperreports:6.12.2'
implementation 'net.sf.jasperreports:jasperreports-fonts:6.12.2'
- 在模块-info.java中添加
requires jasperreports;
- 如果你运行你的项目,会出现关于iText2.1.7的异常,所以你需要做的就是添加这个依赖
implementation 'com.lowagie:itext:2.1.7'
- 重建您的项目,瞧瞧!一切都应该工作正常。 (不要忘记在编码时导入库 :D)
我希望它对我以外的人有所帮助!
所以我一直在 JDK8(Netbeans 11.1 和 JavaFX 2)上使用 Jasper Reports,一切都很简单。现在,我正在使用 gradle(IntelliJ IDEA 和 JavaFX 14)从 JDK8 迁移到 OpenJDK11,并且我坚持使用 Jasper Reports。
我尝试添加依赖项 compile 'net.sf.jasperreports:jasperreports:6.12.2'
并成功下载了 jar 文件,但是当我转到我的代码并尝试导入必要的库时,我找不到它们。
这是我在 JDK8 中使用的代码(我认为在 OpenJDK11 中应该是相同的):
@FXML
public void print(ActionEvent actionEvent) {
// My report
JasperReport jreport = JasperCompileManager.compileReport("path\to\my\report\newReport.jrxml");
// The data source to use to create the report
JRBeanCollectionDataSource jcs = new JRBeanCollectionDataSource(list);
JasperPrint jprint = JasperFillManager.fillReport(jreport, null, jcs);
// Viewing the report
JasperViewer.viewReport(jprint, false);
}
这是我需要的库(net.sf 根本没有检测到,即使下载了 jar 文件):
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.view.JasperViewer;
所以经过一些研究和许多新问题,我想我找到了一个简单的解决方案:
- 将此依赖项添加到您的 gradle 项目(并构建它):
implementation 'net.sf.jasperreports:jasperreports:6.12.2'
implementation 'net.sf.jasperreports:jasperreports-fonts:6.12.2'
- 在模块-info.java中添加
requires jasperreports;
- 如果你运行你的项目,会出现关于iText2.1.7的异常,所以你需要做的就是添加这个依赖
implementation 'com.lowagie:itext:2.1.7'
- 重建您的项目,瞧瞧!一切都应该工作正常。 (不要忘记在编码时导入库 :D)
我希望它对我以外的人有所帮助!