在CentOS上运行MSSQL JDBC示例java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerDriver

时间:2012-11-22 23:29:22

标签: sql-server jdbc centos

我正在尝试运行描述here

的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)

我试图在description of the JDBC driver here中找到解决方案。

我使用-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

为什么找不到课程?

0 个答案:

没有答案