![](/img/trans.png)
[英]java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
[英]java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
我正在構建Maven Java Web應用程序
Class.forName("com.mysql.jdbc.Driver");
我明白了
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
mysql-connector
像這樣添加到我的pom.xml
文件中
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
<scope>provided</scope>
</dependency>
但我一直這樣做。 我甚至嘗試下載mysql-connector
並手動將其添加到項目中,但它不會改變任何東西。
我也有沒有Maven的相同應用程序,相同的代碼工作正常
您已根據provided
設置了依賴項的范圍。 這意味着在編譯項目時使用jar(雖然你不應該需要它來編譯它,因為你應該只使用標准的JDBC類),但是它不包含在jar或構建創建的war中,因為這依賴性應該由部署應用程序的應用程序服務器“提供”。
所以,要么你實際上打算提供這個jar,它應該在應用程序服務器的類路徑中,或者你想將這個jar與應用程序捆綁在一起,它應該有范圍runtime
(因為你需要它來運行應用程序,但不是編譯它),而不是provided
。
您需要添加Heroku插件作為maven依賴項以獲取在heroku中添加的maven依賴項。
部署獨立應用程序
<build>
<plugins>
<plugin>
<groupId>com.heroku.sdk</groupId>
<artifactId>heroku-maven-plugin</artifactId>
<version>2.0.1</version>
<configuration>
<appName>${heroku.appName}</appName>
<processTypes>
<web>java $JAVA_OPTS -cp target/classes:target/dependency/* Main</web>
</processTypes>
</configuration>
</plugin>
</plugins>
</build>
現在,如果您安裝了Heroku Toolbelt,請運行:
$ mvn heroku:deploy
部署WAR文件
<build>
<plugins>
<plugin>
<groupId>com.heroku.sdk</groupId>
<artifactId>heroku-maven-plugin</artifactId>
<configuration>
<appName>${heroku.appName}</appName>
</configuration>
</plugin>
</plugins>
</build>
現在,如果您安裝了Heroku Toolbelt,請運行:
$ mvn heroku:deploy-war
很簡單,你可以解決你的問題。 這不是編譯問題,顯然是運行時問題,您必須在系統類路徑中添加jar文件。 如果您的包是.war
或.ear
格式,您可以通過將maven配置從<scope>provided</scope>
更改為<scope>local</scope>
。 此更正將jar添加到您的本地lib文件夾/目錄。
這肯定會解決您的問題。
我喜歡上面的答案。 我使用帶有java的-cp或-classpath開關在我的Windows 10機器上解決了同樣的問題。 但最后,因為我希望com.mysql.jdbc.Driver可用於我所有的runnable類,所以我只是在機器的環境變量列表中創建了CLASSPATH環境變量。 您必須確保並添加當前目錄路徑。 在命令提示符下發出命令“java MainClassName”時,JVM無法找到[主函數]類。
我使用eclipse並將外部jar文件添加到項目很容易,並且項目在IDE中運行正常而沒有定義CLASSPATH變量,但是如果沒有定義CLASSPATH變量,它們仍然不能在命令提示符窗口中運行。 我還發現,使用UcanAccess [JE 8及更高版本的ODBC解決方案]驅動程序我必須在CLASSPATH變量中包含所有5個jar文件。
我還沒有嘗試構建一個可執行的jar文件,看看我是否需要CLASSPATH變量。 這是我要檢查的下一個項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.