2015-06-15 34 views
0

我試圖使用JDBC來運行一些查詢和不斷收到此錯誤沒有合適的驅動程序:值java.sql.SQLException:找到了JDBC

Exception in thread "main" java.lang.IllegalStateException: error 
     at com.mycompany.app.App.writer(App.java:195) 
     at com.mycompany.app.App.main(App.java:19) 
Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/dbname 

這裏是我的代碼的相關部分:

public class App { 
      writer(); 
} 

public static void writer() { 
     String url = "jdbc:mysql://localhost:3306/dbname 
     String username = "root"; 
     String password = "password"; 
     try (Connection connection = DriverManager.getConnection(url, username, password)) { 
      Statement st = connection.createStatement(); 
      ResultSet r= st.executeQuery("insert query here"); 
     } catch (SQLException e) { 
      throw new IllegalStateException("error"); 
     } 

    } 
} 

當我通過Intellij Idea運行它時,它運行正常,但我需要它運行在運行Centos的服務器上。
我試圖與這個運行它的命令:

javac -cp "filepath/mysql-connector-java-5.1.35-bin.jar" App.java 
java -cp ".filepath/mysql-connector-java-5.1.35-bin.jar" App 

我曾嘗試使用它行家,包括

<dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.35</version> 
    </dependency> 

在pom.xml中,仍然得到同樣的錯誤

我有運行在網上瀏覽了許多文章(和堆疊問題),仍然無法找到解決方案。

服務器運行CentoOS 6.6,數據庫在本地運行。

我使用:

Java版本 「1.8.0_45」 的Java(TM)SE運行時環境(建立1.8.0_45-B14) 的HotSpot的Java(TM)64位服務器VM(建25.45- b02,混合模式)

+1

您使用的是什麼版本的Java? –

+0

我將它添加到主文章 –

回答

2

Unix類操作系統上的類路徑中的條目必須用:分開。添加.一個:之間(表示當前目錄)和罐子的路徑:

java -cp .:filepath/mysql-connector-java-5.1.35-bin.jar App 
+0

沒有工作,我得到相同的錯誤 –

+0

@RichSala你確定JDBC驅動程序的jar路徑是正確的嗎? – Jesper

+0

顯然不是大聲笑。謝謝,它工作!我真的需要它在maven中工作,但我大概可以弄清楚。 –

0

或者,您也可以將您的mysql-connector-java-5.1.35-bin.jar到以下目錄 -

JAVA_HOME/jre/lib/ext 

如果將jar在這個目錄下,你不需要使用命令將它添加到classpath

+2

這解決了這個問題,但它就像用火焰噴射器殺死一個bug。 –

0

您可以嘗試使用class.forName("qualified name of driver class")加載驅動程序類。如果你沒有面對Maven的類路徑問題,這應該解決這個問題。看看at this其中 索引標籤已從POM中刪除,它的工作。

相關問題