我正在尝试在windows7上使用java连接到mysql数据库。尽管在 CLASSPATH 中添加了 jdbcdriver jar 文件的完整 url,但仍出现 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 被抛出。谁能告诉我我在这里缺少什么?如果我将 jar 文件添加到项目库中,它会起作用,但我想通过 CLASSPATH 本身来完成它。 我的类路径看起来像这样 - C:\jython2.5.1\javalib\mysql-connector-java-5.1.12-bin.jar
我想澄清这不是我正在从事的实际项目。我实际上将 Django 与 Jython 一起使用,这需要 JDBC 驱动程序来访问数据库。这就是为什么我必须仅使用 CLASSPATH 来完成此操作的原因。
最佳答案
CLASSPATH
环境变量仅由java.exe
命令使用,即使如此,也仅在不使用任何-cp
、-classpath
、-jar
参数时使用。它被 Eclipse、Netbeans 和 IDEA 等 IDE忽略。
该环境变量在现实世界中也被认为是一种糟糕的做法,因为它破坏了可移植性。 IE。如果不更改 CLASSPATH,程序 X 将成功运行,而程序 Y 将无法运行。对于 Sun Oracle 来说,这只是“有用”的,可以防止初学者在学习 Java 教程时厌倦在 -cp
或 -classpath
参数中一次又一次地键入相同的类路径。在现实世界中,批处理/shell 文件是首选,其中仅指定带有 -cp
/-classpath
参数的整个命令。
就您而言,您使用的是 IDE。类路径称为“构建路径”。在普通的 Java 项目中,它代表编译时和运行时类路径。您可以在项目的属性中对其进行配置。您可以添加完整的文件夹,可以添加单个/外部 JAR 文件,可以链接项目等。利用它。忘记使用 CLASSPATH 环境变量。这是Sun Oracle 的一个错误。他们想说服初学者,但最终只会让初学者更加困惑,因为他们错误地将环境变量解释为类路径。
另请参阅:
关于尽管使用 CLASSPATH 环境变量,但仍出现 java.lang.ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27658700/