簡體   English   中英

找不到Java數據庫驅動程序,即使它位於jar文件中

[英]Java database driver not found, even though it's in the jar file

我有一個連接到SQLServer數據庫的Java應用程序,它打算在命令行中運行。 在Maven依賴項中,我添加了以下內容:

<dependency>
    <groupId>net.sourceforge.jtds</groupId>
    <artifactId>jtds</artifactId>
    <version>1.3.1</version>
</dependency>

通過Intellij運行程序時,我可以毫無問題地運行它。 當我取出創建的jar文件並將其打開時,可以看到JTDS驅動程序:

jar文件展開

但是,當我嘗試使用與Intellij運行配置中使用的參數完全相同的參數在命令行運行jar時,出現錯誤:

Caused by: java.sql.SQLException: No suitable driver found for jdbc:jtds:sqlserver://databaseserver:1433/database 

我運行的命令是

java -jar jarname.jar -cfg ../config.xml

這似乎與該特定驅動程序無關,因為如果我連接到Oracle數據庫並改為包含Oracle瘦驅動程序依賴項,則會遇到相同的問題。 (但是,只是為了使事情變得有趣,如果我添加了Postgres驅動程序依賴項,它在連接到Postgres數據庫的命令行上運行得很好。)

如果我手動將驅動程序jar(與maven依賴版本相同)添加到類路徑,則jar會正確運行。

是什么導致jar內的驅動程序不在類路徑上? (或者是否有其他原因可能導致此問題?)

MadProgrammer在上面的評論是一個問題:我沒有注冊驅動程序,因為我沒有意識到它是JDBC 3.0驅動程序,而不是JDBC 4.0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM