在尝试 JavaFX/OpenJFX 应用程序时,我想使用 H2 数据库引擎。
org.h2.jdbcx.JdbcDataSource
课程。我在其他非 JavaFX 应用程序中这样做过无数次。但是今天我的IDE(IntelliJ)在代码编辑器中报错:
无法解析符号“JdbcDataSource”
我确实在我的 Maven POM 文件中配置了 H2 数据库引擎的依赖项。我知道这是成功的,因为 IDE 显示了 H2 JAR 的存在。请参阅下面的屏幕截图,其中显示了 JAR 的存在以及触发错误的代码。
我已经搜索了一些“无法解析符号”的问题。但似乎没有什么能涵盖我的情况,班级确实存在。
这个
.java
文件确实包含 DataSource
界面的导入:
import javax.sql.DataSource;
我想知道这个问题是否与Java平台模块系统(JPMS)有关。 H2 数据库引擎未模块化(显然),但我的 JavaFX 应用程序is模块化。
我对 JPMS 的有限理解是,模块化应用程序中的非模块化 JAR 继续在类路径上可用。所以我无法理解为什么这里的
org.h2.jdbcx.JdbcDataSource
类的使用没有解决。
这是我的
module-info.java
。我已经包含了java.sql.*
模块。
module work.basil.example.fximage {
requires javafx.controls;
requires java.sql;
opens work.basil.example.fximage to javafx.fxml;
exports work.basil.example.fximage;
}