java - 部署程序集和 CLASSNOTFOUND Java/MySQL 问题

标签 java mysql eclipse connection classnotfoundexception

我已经在这里看了几个小时并尝试了很多不同的解决方案,但我还没有取得任何进展。我的环境变量中有我的 .jar 文件等等。我确保 Eclipse 在我的构建路径中有 mysql-connector...jar 。

我找不到部署程序集设置,这让我相信有一些我不知道的东西存在,我做错了。或者也许他们从光子中去掉了这个功能?我感觉自己撞到了金刚墙。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class main {


public static void main(String[] args) {
    Connection conn = null;
try {
//Server connection details
Class.forName("com.mysql.jdbc.Driver");
String host = "jdbc:mysql://localhost/3306/db";
String userName = "admin";
String password = "admin";

 //Get the connection going.

conn = DriverManager.getConnection(host, userName, password);
}
catch (SQLException err) {
System.out.println(err.getMessage());
}
}}

这是我得到的:

线程“main”java.lang.Error中出现异常: Unresolved 编译问题:

未处理的异常类型ClassNotFoundException

在main.main(main.java:12)

最佳答案

很明显 Eclipse 在您的项目类路径中找不到 MySQL Jdbc 驱动程序。 在 Eclipse 中按照下面提到的步骤操作 -

  1. 窗口 -> 首选项 -> 连接 -> 驱动程序定义。

检查 MySQL JDBC 驱动程序在驱动程序定义列表中是否可见/存在,如下图所示。 enter image description here

如果 MySQL JDBC DRiver 不可见,请单击“添加”,将出现一个窗口,如下图所示。

enter image description here

从过滤器中选择 MySQL,然后选择您的 MySQL 版本。如果 MySQL 驱动程序已在您的 Eclipse 项目中注册,您应该能够选择该驱动程序并单击“编辑”以检查它是否指向文件系统中的正确 JAR 文件。

如果没有,您可以单击“添加”,从列表中选择“MySQL JDBC”,切换到“JAR”选项卡,通过在文件系统中找到 JAR 文件来添加该文件,单击“确定”,然后就可以开始了。

如果您正确添加 MySQL JDBC 连接器,我非常确定,ClassNotFoundException 将消失。

但是,您将遇到一组新的错误,因为您仅捕获 main.java 中的 SQLException。

使源代码编译速度更快的一个快速肮脏修复是使用 Exception 作为 catch 参数,如下 -

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;

    public class main {


    public static void main(String[] args) {
        Connection conn = null;
    try {
     //Server connection details
     Class.forName("com.mysql.jdbc.Driver");
     String host = "jdbc:mysql://localhost/3306/db";
     String userName = "admin";
     String password = "admin";

     //Get the connection going.

     conn = DriverManager.getConnection(host, userName, password);
    }
    catch (Exception err) { // Catch All otherwise the compiler will flag an uncaught Connection exception
      System.out.println(err.getMessage());
    }
    }}

我希望这能解决您的编译+构建问题。 Afaik,Eclipse 会忽略 Windows 系统 ENV 变量。

关于java - 部署程序集和 CLASSNOTFOUND Java/MySQL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52239363/

相关文章:

java - 安装 osgi.bundle;用于 Eclipse 的 org.objectweb.asm 7.0.0

java - 构建 .dll 时找不到 GCC 选项

java - Android 中的 raw 文件夹

java - 即使在命令行上告诉为 -D mapred.reduce.tasks=0 后,hadoop reduce 任务仍在运行

java - 使字符串具有相等的长度

php - 如何自动增加表格中的复选框ID

php - 来自 MySQL 的外国语言在我的 PHP 文件中显示为 ?

mysql - Grails/Tomcat : Database connections get stuck in sleep state

c++ - Eclipse 中的源代码外构建

使用 Jython 脚本的 Java 代码