programing

java.displaces를 클릭합니다.ClassNotFoundException: com.mysql.jdbc.드라이버 인 이클립스

kingscode 2022. 10. 8. 17:21
반응형

java.displaces를 클릭합니다.ClassNotFoundException: com.mysql.jdbc.드라이버 인 이클립스

디버깅 중 오류가 많이 발생하는 코드 문제데이터베이스 mysql에 연결하기 위해 싱글톤 클래스를 위한 코드를 작성하고 있습니다.

여기 제 코드가 있습니다.

package com.glomindz.mercuri.util;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;

public class MySingleTon {
    String url = "jdbc:mysql://localhost:3306/";
    String dbName = "test";
    String driver = "com.mysql.jdbc.Driver";
    String userName = "root";
    String password = "";

    private static MySingleTon myObj;   
    private Connection Con ;
    private MySingleTon() {
        System.out.println("Hello");
        Con= createConnection();
    }

    @SuppressWarnings("rawtypes")
    public Connection createConnection() {
        Connection connection = null;
        try {
            // Load the JDBC driver
            Class driver_class = Class.forName(driver);
            Driver driver = (Driver) driver_class.newInstance();
            DriverManager.registerDriver(driver);
            connection = DriverManager.getConnection(url + dbName);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        }
        return connection;
    }

    /**
     * Create a static method to get instance.
     */
    public static MySingleTon getInstance() {
        if (myObj == null) {
            myObj = new MySingleTon();
        }
        return myObj;
    }

    public static void main(String a[]) {
        MySingleTon st = MySingleTon.getInstance();
    }
}

나는 자바에 익숙하지 않다.제발 도와주세요.

mysql 연결 라이브러리는 프로젝트에 포함되지 않은 것 같습니다.제안된 솔루션 중 하나에 따라 문제를 해결합니다.

  • 메이븐 프로젝트 솔루션

mysql-connector 의존관계를 pom.xml 프로젝트파일에 추가합니다.

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.39</version>
</dependency>

여기 모든 버전이 있습니다.https://mvnrepository.com/artifact/mysql/mysql-connector-java

  • 모든 프로젝트 솔루션

프로젝트에 jar 라이브러리를 수동으로 추가합니다.

프로젝트 우클릭 --> 빌드 패스 --> 빌드 패스를 클릭합니다.

»Libraries Tab Add External Jar ★★★★★★★★★★★★★★★★★」Select당신의 항아리.

여기서 mysql-connector의 zip을 찾을 수 있습니다.

  • 설명:

프로젝트를 빌드할 때 파일(com.mysql.jdbc) 때문에 Java에 의해 예외가 발생합니다.mysql 연결 라이브러리의 드라이버 클래스)를 찾을 수 없습니다.이 솔루션은 프로젝트에 라이브러리를 추가하는 것입니다.Java는 com.mysql.jdbc를 검색합니다.드라이버

IDE 에러가 발생했을 경우는, mysql-connector jar 파일을 libs 에 추가하고, 이것을 참조하는 프로젝트 라이브러리에도 추가할 필요가 있습니다.

실행 중에 이 오류가 발생할 경우 웹 서버의 lib 폴더에 mysql-connector JAR 파일이 포함되어 있지 않기 때문일 수 있습니다.

mysql-connector-java-5.1.25-bin.jar클래스 경로 및 웹 서버의 lib 디렉토리에 연결합니다.는 Tomcat lib의 .Tomcat 6.0\lib

모두 답을 썼지만, 실제로 가장 간단한 방법으로 대답한 사람이 아무도 없다는 사실에 여전히 놀랐습니다.
사람들은 항아리 파일을 포함한 대답을 한다.그래도 에러는 발생합니다.

그 이유는 프로젝트가 실행될 때 jar가 배포되지 않기 때문입니다.따라서 IDE에 이 항아리도 도입하도록 지시해야 합니다.

여기 사람들은 그 jar 파일을 WEB-INF의 lib 폴더에 넣는 것에 대해 너무 많이 대답했어요.그건 괜찮은 것 같은데 왜 수동으로 하죠?간단한 방법이 있다.다음의 순서를 확인합니다.

1단계: jar 파일을 프로젝트에 참조하지 않은 경우 다음과 같이 참조합니다.

프로젝트를 마우스 오른쪽 버튼으로 클릭하고 프로젝트 속성으로 이동합니다.그런 다음 Java 빌드 경로로 이동한 후 이를 통해 외부 jar 파일을 추가합니다.

그러나 빌드 경로를 통해 외부 jar를 추가하는 것은 클래스 컴파일에만 도움이 되며 프로젝트를 실행할 때 jar가 전개되지 않기 때문에 문제가 해결되지 않습니다.그러기 위해서는, 이 순서에 따릅니다.

프로젝트를 마우스 오른쪽 버튼으로 클릭하고 프로젝트 속성으로 이동합니다.그런 다음 Deployment Assembly로 이동하여 Add를 누른 다음 Java 빌드 경로 엔트리로 이동하여 jstl, mysql 또는 기타 jar 파일 중 어느 쪽이든 라이브러리를 추가합니다.이것들을 전개에 추가합니다.아래 두 장의 사진이 표시되어 있습니다.

추가 전

추가 후

Gradle 기반 프로젝트의 경우 MySQL Java Connector에 의존해야 합니다.

dependencies {
    compile 'mysql:mysql-connector-java:6.0.+'
}

MySQL Connector Jar용 드라이버 jar를 클래스 경로에 포함해야 합니다.

이클립스를 사용하는 경우:Eclipse에서 종속 라이브러리를 추가하는 방법

명령줄을 사용하는 경우 java의 -cp 파라미터를 사용하여 드라이버 jar에 대한 경로를 포함합니다.

java -cp C:\lib\* Main

(mysql-connector-java-bin)여기에서 다운로드한 클래스 경로에서

JDBC API는 대부분 데이터베이스와는 독립적으로 동작하는 인터페이스로 구성됩니다.JDBC API를 구현하는 각 데이터베이스에는 데이터베이스 고유의 드라이버가 필요합니다.

먼저 www.mysql.com에서 MySQL 커넥터 jar를 다운로드한 후 다음을 수행합니다.

Right Click the project -- > build path -- > configure build path

에서 을 누릅니다.Add External Jar항아리를 선택합니다.

메이븐 기반 프로젝트의 경우 종속성이 필요합니다.

<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.38</version>
</dependency>

드라이버 커넥터가 빌드 경로에 없습니다.빌드 경로를 구성하고 'mysql-connector-java-5.1.25-bin.jar'를 가리킵니다(사용 중인 버전을 확인하십시오).또는 maven을 사용할 수도 있습니다.d

프로젝트에서 Libraries 폴더에 --> 우클릭 --> Add Library --> Mysqlconnector 5.1

IntelliJ Idea의 경우 프로젝트 구조(File, Project Structure)로 이동하여 mysql connector .jar 파일을 글로벌 라이브러리에 추가합니다.그러면 마우스 오른쪽 버튼을 클릭하고 '모듈에 추가'를 선택합니다.[적용] / [확인]을 클릭하면 준비가 완료됩니다.

2021년 기준으로 사용해야 합니다.

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.21</version>
    </dependency>

제 경우 Netbeans 버전 메이븐프로젝트 7.2.1은 달랐습니다.프로젝트에는 종속성이라는 폴더가 있습니다.마우스 오른쪽 버튼을 클릭하면 패키지를 검색할 수 있는 팝업 창이 나타납니다.쿼리 영역에 입력

mysql-connector

일치하는 항목이 표시됩니다(일부 저장소에 대해 이 작업을 수행하는 것 같습니다).더블클릭 후 설치합니다.

그 이유는 WEB-INF 폴더가 에러의 서브 디렉토리내의 위치에 존재하지 않기 때문입니다.public_html 아래의 WEB-INF 폴더를 사용하도록 응용 프로그램을 컴파일하거나 위의 오류와 같이 하위 폴더에 WEB-INF 폴더를 복사합니다.

클래스 경로가 정의되지 않았기 때문에 예외가 발생할 수도 있습니다.

몇 시간의 조사와 말 그대로 수백 페이지의 페이지를 거친 후, 문제는 도서관의 수업 경로가 정의되지 않았다는 것이었다.

Windows 머신에서 다음과 같이 클래스 경로를 설정합니다.

set classpath=path\to\your\jdbc\jar\file;.

이 의존성을 pom.xml에 추가하면 문제가 해결된다는 것을 이해했습니다.

https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.38

Tomcat을 사용하는 경우 프로젝트 디렉토리와 함께 데이터베이스 커넥터 jar 파일도 tomcat/lib에 복사해야 합니다.이것은 나에게 효과가 있었다.

Eclipse IDE에서 SQLite Database를 사용하여 간단한 JavaFX11 애플리케이션을 개발하고 있습니다.보고서를 작성하기 위해 Jasper 항아리를 추가했습니다.갑자기 'THIS' 에러가 발생.

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

정상적으로 동작하고 있었습니다(이 추가 전).그런데 갑자기!

이 간단한 어플리케이션에는 maven이나 다른 매니저를 사용하지 않습니다.나는 수동으로 병을 추가하고 있다.

"사용자 라이브러리"를 만들고 외부 폴더에서 항아리를 추가했습니다.

문제 발생 영역: "사용자 라이브러리"가 시스템 라이브러리로 표시되어 있습니다.방금 표시를 지웠어요.지금은 시스템 라이브러리가 아닙니다.'NOW MY PROJECT GOOD'

디버깅: 기타 시도: AT RUN 구성: 라이브러리를 삭제하고 하나씩 jar를 추가하여 확인합니다.- 여기서는 모든 jar를 하나씩 삭제해야 합니다.실행 구성에서는 현재 모두 선택되지 않고 모두 삭제되지 않습니다.따라서 오류 메시지가 하나의 항에서 다른 항으로 변경됩니다.

이게 도움이 됐으면 좋겠네요.

I was also facing the same problem

mysql-connector-java jar 파일 다운로드

을 에 the에 .C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib

당신도 잘 되길 바랍니다!!

마침내.

두 단계로 해결했습니다.

1 - pom.xml에 다음 추가

  <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.0.8</version>
        </dependency>

2 - 다음 URL에서 jar 파일을 다운로드 합니다.https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.0.8 에서 다운로드한 후 다음 URL에 jar 파일을 저장합니다.tomcat/lib폴더입니다.

저도 같은 문제를 겪고 있었어요.MySQL 연결을 만들기 위해 intellij IDE를 사용하고 있었습니다.

수정 절차:

  1. 다운로드: mysql-connector.jar(저는 8.0.29를 사용했습니다).

  2. file--> project structure --> Libraries --> 플러스 버튼을 클릭하여 java를 선택하고 스텝1에서 다운로드한 jar 파일을 선택합니다.여기에 이미지 설명 입력

  3. jar 파일이 "External Libraries directory" 아래에 표시되는지 확인합니다.

여기에 이미지 설명 입력 4. 이제 연결을 만들어 보겠습니다.그건 작동할 것이다.

MySQL 연결을 만들기 위해 다음 코드를 사용했습니다.

void createConnection() throws SQLException, ClassNotFoundException {
    Connection connection=null;
    try {

        Class.forName("com.mysql.cj.jdbc.Driver");
          connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/candelete"
                ,"root","");
        System.out.println("Connection created");
        System.out.println("hashcode is: "+connection.hashCode());
    }
    finally {
        System.out.println("here");
        System.out.println("hashcode is: "+connection.hashCode());
        connection.close();
        System.out.println("hashcode now: "+connection.hashCode());
    }
}

언급URL : https://stackoverflow.com/questions/17484764/java-lang-classnotfoundexception-com-mysql-jdbc-driver-in-eclipse

반응형