1

我正在尝试运行此处描述的 JDBC Microsoft SQL 连接示例

import java.sql.*;

public class TestAzure {

   public static void main(String[] args) {

      try {
         Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
      }

      // Handle any errors that may have occurred.
      catch (Exception e) {
         e.printStackTrace();
      }
      finally {
         if (rs != null) try { rs.close(); } catch(Exception e) {}
         if (stmt != null) try { stmt.close(); } catch(Exception e) {}
         if (con != null) try { con.close(); } catch(Exception e) {}
      }
   }
}

不幸的是,这失败了:

overlord@overlord-datanode1:~/Documents/hadoop/scripts/03_azure_sql$ java TestAzure -cp ./
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at TestAzure.main(TestAzure.java:18)

我试图在此处的 JDBC 驱动程序描述中找到解决方案。

我使用 -cp ./ 将类路径设置为本地目录。我也试过这个建议“看起来你需要将 jar 添加到类路径中 - 例如”java TestAzure -cp ./:./sqljdbc4.jar”

sqljdbc4.jar 在同一个文件夹中+我检查了这个类在里面:

overlord@overlord-datanode1:~/Documents/hadoop/scripts/03_azure_sql$ jar tf sqljdbc4.jar | grep SQLServerDriver
com/microsoft/sqlserver/jdbc/SQLServerDriver.class
com/microsoft/sqlserver/jdbc/SQLServerDriverPropertyInfo.class

为什么找不到类?

4

0 回答 0