java.lang.ClassNotFoundException 尽管使用了 CLASSPATH 环境变量

我正在尝试在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来做到这一点的原因。


答案 1

环境变量由命令使用,即使如此,也只有在不使用任何 、 、参数时使用。它被Eclipse,Netbeans和IDEA等IDE所忽略CLASSPATHjava.exe-cp-classpath-jar

该环境变量在现实世界中也被认为是一种不良做法,因为它破坏了可移植性。即,程序 X 将成功运行,而程序 Y 如果不更改 .对于 Sun Oracle 来说,只有“有用”,可以防止初学者在遵循 Java 教程时厌倦在 or 参数中一次又一次地键入相同的类路径。在现实世界中,批处理/shell 文件是首选文件,其中只指定了带有 / 参数的整个命令。CLASSPATH-cp-classpath-cp-classpath

在你的例子中,你正在使用一个IDE。类路径称为“构建路径”。在普通 Java 项目中,它同时表示编译时和运行时类路径。您可以在项目的属性中对其进行配置。您可以添加一个完整的文件夹,可以添加单个/外部JAR文件,可以链接项目等。利用它。忘记使用环境变量。这是太阳神谕的一个错误。他们想说服初学者,但最终只会让初学者更加困惑,因为他们错误地将该环境变量解释为类路径。CLASSPATH

另请参阅:


答案 2

最终帮助我的是将 mysql-connector-java-5.1.15-bin.jar 复制到 \jre\lib 和 \jre\lib\ext both(!),即使我做了所有类路径 circus Java 提供的:)环境是纯粹的记事本/命令行。


推荐