【发布时间】:2012-06-07 10:47:50
【问题描述】:
我尝试用我的 MS SQL express 连接 java,我也下载了 sqljdbc4.jar
当我不关心 CLASSPATH 和所有内容时,我尝试执行我的程序(即使使用 sqljdbc
C:\Program Files (x86)\Java\jre6\lib
我收到以下错误
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.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 Connect.getConnection(Connect.java:24)
at Connect.displayDbProperties(Connect.java:42)
at Connect.main(Connect.java:78)
getConnection() 中的错误跟踪:com.microsoft.jdbc.sqlserver.SQLServerDriver 错误:没有活动连接
但是,如果我尝试将 CLASSPATH 变量设置为指向 sqljdbc4.jar,则 ClassNotHoundExcepetion 会在识别我的类名时发生。
需要立即帮助。请回复。
我使用命令行模式调用它,我尝试在 Windows 7 的系统变量对话框中设置类路径。当我这样做或使用 set CLASSPATH="C:\temp\sqljdbc4.jar" 时 jre 失败识别我的程序的主类并抛出
Exception in thread "main" java.lang.NoClassDefFoundError: Connect
Caused by: java.lang.ClassNotFoundException: Connect
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)
找不到主类:Connect。程序将退出。
所以我在这里不知所措。
【问题讨论】:
-
我认为 jar 文件必须在 C:\Program Files (x86)\Java\jre6\lib\ext 而不仅仅是在 lib 中。
-
也这样做了..但无济于事! :(
-
您确定您使用的是该 java 实例而不是另一个实例来运行应用程序吗?如果不是,您只需要以另一种方式将类添加到类路径中。
-
我很确定我只使用 32 位版本来运行程序,并且我已将我的 home 和 path var 设置为仅指向它
标签: java sql-server database connection