我有一个Scala测试项目,该项目将一些信息写入mysql数据库。我使用sbt设置了项目,并使用sbt-eclipsify以便可以从eclipse运行它。我还使用了sbt插件sbt-assembly来创建一个单个jar,其中包含我需要的依赖jar中的所有类。我可以从eclipse和sbt正常运行程序。
我从sbt-assembly构建的单个jar中运行它:
java -classpath target/test1-assembly-1.0-SNAPSHOT.jar example.InsertDataIntoDatabase
Run Code Online (Sandbox Code Playgroud)
但是它失败了:
找不到适用于jdbc:mysql:// localhost:3306 / test的驱动程序
我的第一个想法是sbt-assembly可能错过了mysql驱动程序的依赖关系,但是我解压缩了jar,并在其中找到了com / mysql / jdbc / Driver.class。
还有其他依赖可能会丢失吗?
如何解决呢?
能给个初始化代码的例子吗?
JDBC驱动程序通常需要加载驱动程序的类来调用静态初始化代码并将其注册到DriverManager中。对于 MySQL,这可以通过以下方式完成:
Class.forName("com.mysql.jdbc.Driver")
Run Code Online (Sandbox Code Playgroud)