我已经在build.gradle
中添加了SQLITE,并且正在尝试使用Gradle 4.10中的org.beryx.jlink
插件创建自定义运行时图像。运行图像时,我会收到错误:No suitable driver found for jdbc:sqlite:
这个问题,这个问题处理了一个类似的问题,但不是在运行时图像。
我在build.gradle中添加了sqlite:
plugins {
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.7'
id 'org.beryx.jlink' version '2.9.4'
}
repositories {
mavenCentral()
}
javafx {
version = "12"
modules = [ 'javafx.controls', 'javafx.fxml']
}
dependencies {
compile 'org.xerial:sqlite-jdbc:3.20.1'
}
jlink {
launcher {
name = 'bankstatementprocessor'
}
}
一旦我想连接到代码中的sqlite db,我就会得到错误 No suitable driver found for jdbc:sqlite:
conn = DriverManager.getConnection(CONNECTION_STRING);
作为验证,我包括以下内容:
Class.forName("org.sqlite.JDBC");
,我收到错误: java.lang.ClassNotFoundException: org.sqlite.JDBC
似乎有一种方法可以用Maven解决此问题,如下所示:
当我简单地使用./gradlew run
运行项目时,没有错误;但是,该图像似乎没有注册SQLite驱动程序。
获得所需结果的一种可能方法是在运行时选择JDBC驱动程序。我不是这种方法的粉丝,因为我觉得在build.gradle
文件中应该有一种更干净的方法。
jlink {
...
forceMerge("sqlite")
...
}
https://badass-jlink-plugin.beryx.org/releases/latest/#_methods