我正在开发一个 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 回答
海绵宝宝撒
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>
添加回答
举报
0/150
提交
取消