[英]I can't load the JDBC driver for MySQL
我一直在尝试使用以下代码加载 JDBC MySQL 连接器:
import java.sql.*;
public class dbTest{
public static void main(String[] args) throws SQLException, ClassNotFoundException
{
Class.forName("com.mysql.jdbc.Driver");
}
}
而且我不断收到 class not found 异常:
java.lang.ClassNotFoundException
at edu.rice.cs.plt.reflect.PathClassLoader.findClass(PathClassLoader.java:148)
at java.lang.ClassLoader.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 dbTest.main(dbTest.java:6)
我已将驱动程序的路径 (mysql-connector-java-3.1.14-bin.jar) 添加到我的类路径中,并仔细检查以确保它是正确的。 我还根据我从这篇文章中读到的内容将 jar 的副本添加到我的 Java 安装的 ext 文件夹中: Z80791B3AE7002CB88C246876D9FAA8F8F8Z://www.and-mysql-installation-and-jparation/java of-mysql.html
我还搜索了其他遇到此问题的帖子,但到目前为止,所有回复都说要将连接器 jar 添加到类路径中,我已经这样做了。
任何帮助将不胜感激。
在 IntelliJ 上,这就是我解决此问题的方法:
文件 > 项目结构 > 库 > +
找到 jdbc 连接器。 对我来说,它在 C:\Users\MyName.InteliJIdea13\config\jdbc-drivers
我已将驱动程序的路径(mysql-connector-java-3.1.14-bin.jar)添加到我的类路径中
异常告诉您您没有正确执行此操作。
你是如何设置 CLASSPATH 的? 如果它是一个环境变量,您将了解到 IDE 和应用服务器会忽略它。 不要使用它。
也不要将它放在 Java JDK 的 /ext 目录中。
正确的方法取决于您如何使用它:
java 中有两个类路径。 构建路径和运行路径。 编译时使用构建路径将.java文件转换成.class文件。 In a language like C you have a linker stage that fills in all the missing symbols when you run the linker on a bunch of object files. 这就是为什么 for.exe(windows) 或其他本机二进制文件(linux) 没有运行路径的原因。 Java 略有不同,因为编译后的 class 定义在需要时由 jvm 加载。
这样做的结果是您必须为 jvm 提供运行时类路径。 在命令行中,您使用 java.exe,它默认搜索几个位置,包括 $CLASSPATH、当前目录/lib 以及您提供给 -cp 选项的任何内容。
IDE 与命令行不同,因为它们试图让您免于运行 java.exe 并提供所有 .class 文件所在的位置(这在大型项目中会很麻烦)。
大多数 IDE 都有某种“运行配置”选项卡,允许您指定某些库或位置以及运行应用程序时将使用的类。 下面是如何在 eclipse、netbeans 和 intellij 中设置运行路径。
http://javahowto.blogspot.com/2006/06/set-classpath-in-eclipse-and-netbeans.html
http://www.jetbrains.com/idea/webhelp/run-debug-configuration-application.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.