簡體   English   中英

無法通過class.forName(“ com.mysql.jdbc.Driver”)加載com.mysql.jdbc.Driver類

[英]Couldn't load class com.mysql.jdbc.Driver by class.forName(“com.mysql.jdbc.Driver”)

我正在做與mySQL數據庫交互的簡單Java應用程序。 它應該在Ubuntu服務器上運行。 我正在Intellij IDEA中開發它,並且在這里很好用。

但是,當我生成jar文件並在Ubuntu命令行(服務器和運行ubuntu的家用PC)中啟動它時,沒有任何效果。

我只需鍵入java -jar %my_jar_filename%並得到錯誤

“無法加載主類... Class.forName(“ com.mysql.jdbc.Driver”)“

我知道,由於java 5(我不確定在這里使用哪個版本,我使用8),所以沒有必要編寫它,但是如果我不編寫它,我會得到

“找不到合適的驅動程序”

我搜索了這個問題,發現的唯一解決方案是確保驅動程序確實存在於PC上並添加Class.forName("");

這對我沒有幫助。 驅動程序存在,因為在IDE程序中有效。 我認為麻煩在於java選項。 我試圖通過java -cp添加mysql連接器,

但是它給了我同樣的錯誤,甚至試圖通過javac從源代碼在終端中編譯程序,但是還是同樣的問題。 在我的PC上,mysql連接器位於usr/share/java/文件夾中

應用程序最終應在其中運行的服務器具有相同的設置我在做什么錯?

**已解決:**謝謝大家,解決方案非常簡單。 這個答案幫助https://stackoverflow.com/a/45303637/9184305

這看起來像類路徑問題,它可能沒有h jar文件。 我建議使用maven並創建maven項目並生成jar文件。 Maven將處理依賴關系和打包。

這可能是因為您使用了錯誤的驅動程序-我們改用此類:

com.mysql.cj.jdbc.Driver

閱讀您的描述時,您可能還會遇到這樣的問題:您的代碼可以在IDE中運行,但是當您嘗試從jar /命令行運行它時卻不能。

在這種情況下,

  1. 您如何創建罐子?
  2. 您是否將所有依賴項與jar一起部署?
  3. 您是否有一個MANIFEST.MF文件指示您的主班?

暫無
暫無

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

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