[英]Class.forName(“com.mysql.jdbc.Driver”).newInstance()
[英]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 /命令行運行它時卻不能。
在這種情況下,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.