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

标签 java environment-variables classpath classnotfoundexception

我正在尝试在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 来说,“有用”的只是防止初学者厌倦在 -cp-classpath 中一次又一次地输入相同的类路径。遵循 Java 教程时的参数。在现实世界中,批处理/shell 文件是首选,其中仅指定带有 -cp/-classpath 参数的整个命令。

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

另请参阅:

关于尽管使用 CLASSPATH 环境变量,但仍出现 java.lang.ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27661095/

相关文章:

java - 在 IOS 上恢复后 robovm 黑屏

java - 通过Ant脚本在java中加载环境变量

java - 在 Spring Boot 中读取 MacOs 环境变量

php - 替换 php5 中已弃用的 register_globals 以更新 exec 使用的路径变量?

java - Windows(7?)上 Java 7 命令行的损坏的通配符扩展

maven - Maven exec:java在NPE中运行可执行插件依赖项jar结果

java - ANTLRworks 中的 TestRig : how to use own classes?

java - Java API 是否有数据结构来表示层次结构

java - 刷新后 hibernate 不发出更新

java - 使用 BufferedReader 进行递归