(对不起,英语不好。)
我必须连接oracle数据库,因此我下载了oracle jdbc驱动程序并添加了我的依赖项。当我在intellij运行时,它连接良好,因此我用gradle构建了可执行的jar文件。
但是,它无法连接到我的oracle数据库。我认为它是在没有oracle jdbc驱动程序文件的情况下构建的,因为它是本地jar文件。
如何建立所有依赖关系?
如果您需要有关我的项目的更多信息来解决此问题,请告诉我。
谢谢:D
build.gradle
jar {
manifest {
attributes 'Main-Class': 'App'
}
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
// https://mvnrepository.com/artifact/mysql/mysql-connector-java
compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.20'
// https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client
compile group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.6.0'
// https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple
compile group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
// oracle 11g jdbc driver
compile files('lib/ojdbc6.jar')
}
cmd
{directory}> java -jar ./{jarFileName}.jar
错误消息
java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@{address}:{port}:{sid}
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at WaitingDatabase.connect(WaitingDatabase.java:17)
at App.connectDatabase(App.java:22)
at App.main(App.java:5)
WaitingDatabase.connect(WaitingDatabase.java:17)
Connection connection = DriverManager.getConnection(
jdbc:oracle:thin:@{address}:{port}:{sid},
{username},
{password}
);
文件树
- {root directory}
- lib
- ojdbc6.jar
- src
- main
- java
- App.java
- WaitingDatabase.java
- build.gradle
您所做的是正确的:
compile files('lib/ojdbc6.jar')
删除它,然后尝试这个:
dependencies {
implementation fileTree(dir: 'lib', include: '*.jar')
这样做的好处是它将包含lib目录中的所有jar,而无需手动进行。