为了账号安全,请及时绑定邮箱和手机立即绑定

项目 JAR 无法访问 Derby 驱动程序

项目 JAR 无法访问 Derby 驱动程序

浮云间 2022-06-23 15:54:59
我正在开发一个 Java 项目,我们希望使用嵌入式数据库,使用 JDBC 进行连接,并使用 Derby 作为数据库。这是一个部署到可执行 JAR 的 Maven 项目。我已将 Derby 作为对项目的依赖项。我正在使用 Java 1.8、Maven 3.8.0 和 Derby 10.8.3.0。POM.xml<!-- Derby for database connection --><dependency>  <groupId>org.apache.derby</groupId>  <artifactId>derby</artifactId>  <version>10.8.3.0</version></dependency>App.javapublic class App {public static void main(String[] args) {    JOptionPane.showMessageDialog(null, "Hello World.");    SampleDB sdb = new SampleDB();    try {        sdb.connectionToDerby();        sdb.sampleDBUsabe();    } catch (SQLException sqle) {        System.out.println(sqle);    }}}SampleDB.javapublic class SampleDB {private Connection conn;public void connectionToDerby() throws SQLException {    String dbURL = "jdbc:derby:sampledb;create=true";    conn = DriverManager.getConnection(dbURL);}public void sampleDBUsabe() throws SQLException {    Statement stmt = conn.createStatement();    //Create Table    stmt.execute("Create Table USERS (id int primary key, name varchar(30))");...}当我执行生成的 .JAR 文件时,出现错误:$ java -jar target/puzzle.game-0.0.1-SNAPSHOT.jarjava.sql.SQLException: No suitable driver found for jdbc:derby:sampledb;create=true我怀疑这是由于 Derby 驱动程序不是我的类路径的一部分。有没有办法使用 maven 或 settings.xml 文件来做到这一点,以便在用户运行mvn install目标时自动发生这种情况?
查看完整描述

2 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

请参阅此问题的答案:使用 maven 构建一个胖罐。您需要使用 maven 程序集插件来创建所谓的 fat/uber jar。



查看完整回答
反对 回复 2022-06-23
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

启动应用程序时,您的类路径中需要 derby-10.8.3.0.jar。


java -cp derby-10.8.3.0.jar;target/puzzle.game-0.0.1-SNAPSHOT.jar App

类路径分隔符取决于操作系统。你可能需要调整它。


正如 Bryan Pendleton 所提到的,您应该使用当前的 Derby 版本。


<dependency>

  <groupId>org.apache.derby</groupId>

  <artifactId>derby</artifactId>

  <version>10.14.2.0</version>

</dependency>


查看完整回答
反对 回复 2022-06-23
  • 2 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信