2016-07-21 7 views
0

Ich verwende diesen Code:Fehler beim Verbinden mit SQ-Server von Java: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 

public class ConnectMSSQLServer 
{ 
    public void dbConnect(String db_connect_string, String db_userid, String db_password) 
    { 
     try { 
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
      Connection conn = DriverManager.getConnection(db_connect_string, db_userid, db_password); 
      System.out.println("connected"); 
      Statement statement = conn.createStatement(); 
      String queryString = "select * from sysobjects where type='u'"; 
      ResultSet rs = statement.executeQuery(queryString); 
      while (rs.next()) { 
       System.out.println(rs.getString(1)); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    public static void main(String[] args) 
    { 
     ConnectMSSQLServer connServer = new ConnectMSSQLServer(); 
     connServer.dbConnect("jdbc:sqlserver://C1A\\SQL1A", "P", "G31les"); 
    } 
} 

Aber ich bekomme diese Fehlermeldung:

"C:\Program Files\Java\jdk1.8.0_91\bin\java" -Didea.launcher.port=7532 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_91\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\rt.jar;C:\Users\wmoscoso\Desktop\SaturnLittleBrother\out\production\SaturnLittleBrother;C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.2\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain ConnectMSSQLServer 
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:264) 
    at ConnectMSSQLServer.dbConnect(ConnectMSSQLServer.java:16) 
    at ConnectMSSQLServer.main(ConnectMSSQLServer.java:33) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 


Process finished with exit code 0 

Ich bin neu in Java, könnte mir jemand in die richtige Richtung zeigen? Ich weiß nicht, wie man einen Klassenpfad einstellt, ist das nötig? Warum muss ich das überhaupt tun?

+2

Sie verpassen den oberen (und wichtigsten) Teil Ihrer Fehlermeldung. Wenn ich raten müsste, würde ich sagen, dass Ihr JDBC-Jar nicht in Ihrem Klassenpfad ist. – bradimus

+1

Die JVM kann die Klasse 'SaturnDBInterface' nicht finden. [Diese Antwort] (http://stackoverflow.com/questions/17300318/error-classnotfundexception-in-intellij-idea) könnte helfen – bradimus

+0

Warum versuchen Sie, eine Klasse mit dem Namen 'SaturnDBInterface' auszuführen, wenn Ihre Klasse' ConnectMSSQLServer' heißt ? Sie sollten den Laufdeskriptor (oder was auch immer in IntelliJ aufgerufen wird) überprüfen, mit dem Sie das Programm ausführen. – Andreas

Antwort

0

Ich habe es zur Arbeit. Ich muss die JAR-Dateien für eine JDBC-Verbindung von der Microsoft-Website herunterladen und sie dann meinem Projekt hinzufügen.