我正在尝试运行此处描述的 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
为什么找不到类?