一尘不染

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

java

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


阅读 585

收藏
2020-03-08

共1个答案

一尘不染

在CLASSPATH环境变量只使用的java.exe命令和使用时甚至那么只有没有任何的-cp,-classpath,-jar参数。Eclipse,Netbeans和IDEA等IDE 会忽略它。

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

在你的情况下,你正在使用IDE。此处的类路径称为“构建路径”。在普通的Java项目,它代表双方在编译时和运行时类路径。你可以在项目的属性中对其进行配置。你可以添加完整的文件夹,可以添加单个/外部JAR文件,可以链接项目等。利用它。不用使用CLASSPATH环境变量。这是Sun Oracle 的错误。他们认为说服首发,但最终仅被更混乱到起动机,因为他们错误地解释这个环境变量的类路径。

2020-03-08