java.lang.ClassNotFoundException或无法找到或加载主类错误

时间:2018-02-15 18:17:41

标签: java windows jdbc

第一次尝试在Windows下运行一些Java代码,我得到了:

D:\Tmp>java JDBC_SQLServer
Picked up _JAVA_OPTIONS: -Xmx512M
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at JDBC_SQLServer.main(JDBC_SQLServer.java:19)

即,java找到main但没有找到lib。现在, -

D:\Tmp>java -classpath "C:\Program Files\Java\jdk1.8.0_162\lib" JDBC_SQLServer
Picked up _JAVA_OPTIONS: -Xmx512M
Error: Could not find or load main class JDBC_SQLServer

即,java找到sqlserver.jdbc.SQLServerDriver lib,但现在找不到。

JDBC_SQLServer只是一个黑客攻击 https://docs.microsoft.com/en-us/sql/connect/jdbc/connection-url-sample

如何解决?谢谢。

1 个答案:

答案 0 :(得分:1)

类路径需要包含当前目录(为了找到你的类及其main - 方法和jar文件(不仅是包含jar的目录),所以调用可能看起来像这样:

D:\Tmp>java -cp "C:/mssql/lib/sqljdbc41.jar;." JDBC_SQLServer

您不需要对路径使用反斜杠,因为反斜杠通常由您使用的shell专门解析,我个人尽量避免使用它们。