在IntelliJ中用JasperReport生成PDF报表时遇java.sql.Connection访问错误
解决Jasper Report运行时找不到java.sql.Connection的问题
我在IntelliJ Idea中使用Jasper Report开发PDF报表生成应用,运行时出现如下错误:
C:\Users\USER\IdeaProjects\Concrete Mix Design\src\main\java\com\example\concrete_mix_design\Controllers\MainController.java:1031:50
java: cannot access java.sql.Connection
class file for java.sql.Connection not found
已在pom.xml中添加Jasper Report的Maven依赖,核心代码如下:
public void printReport(ActionEvent actionEvent) throws FileNotFoundException, JRException, URISyntaxException { JasperReport jasperReport = getJasperReport(); Map<String, Object> parameters = getParameters(); JRDataSource datasource = new JREmptyDataSource(); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, datasource); JasperViewer.viewReport(jasperPrint); } private Map<String, Object> getParameters() { Map<String, Object> parameters = new HashMap<>(); return parameters; } private JasperReport getJasperReport() throws JRException { InputStream inputStream = this.getClass().getResourceAsStream("/JasperReport.jrxml"); JasperReport jasperReport = JasperCompileManager.compileReport(inputStream); return jasperReport; }
解决方案
- 检查项目SDK配置:确保IntelliJ中项目使用完整JDK而非JRE。操作路径:
File → Project Structure → Project Settings → Project,确认Project SDK为JDK版本(如openjdk-17)。 - 模块化项目适配:若项目基于Java 9+模块化开发(存在
module-info.java),需在文件中添加声明:requires java.sql; - 确认Maven依赖完整性:确保Jasper Report核心依赖正确引入,推荐使用最新稳定版:
<dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports</artifactId> <version>6.20.0</version> </dependency> - 刷新Maven依赖:点击IntelliJ右侧Maven面板的「Reload All Maven Projects」按钮,确保依赖下载并导入完成。
内容的提问来源于stack exchange,提问作者Piapazi Randy
相关产品推荐
相关产品推荐

