본문 바로가기
MySql

MySQL NoClassDefFoundError : org / aspectj / lang / Sign

by 베이스 공부 2020. 12. 5.
반응형

MYSQL을 Java 앱에 연결하는 간단한 프로그램을 시도했습니다. Windows OS를 사용하고 있습니다. 온라인 자습서를 사용하고 메모장에서 다음 프로그램을 시도했습니다.

import java.sql.*;

public class Database1{
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
static final String DB_URL = "jdbc:mysql://localhost/EMP";

static final String USER = "root";
static final String PASS = "admin";

public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;

try{
   Class.forName("com.mysql.jdbc.Driver");
   System.out.println("Connecting to database...");

    conn = DriverManager.getConnection(DB_URL,USER,PASS);

    System.out.println("Creating statement...");
    stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT * FROM Employees");

    System.out.println("ID             NAME         ");

    while(rs.next()){
      String id=rs.getString("ID");
      String name=rs.getString("NAME");
      System.out.print(id);
      System.out.println(name);

      }

      rs.close();
      stmt.close();
      conn.close();
     } //close try block
    catch(SQLException s){ s.printStackTrace();}
    catch(Exception e){e.printStackTrace();}

    finally{

  try{
     if(stmt!=null)
        stmt.close();
   }catch(SQLException se2){
   }// nothing we can do
  try{
     if(conn!=null)
        conn.close();
   }catch(SQLException se){
     se.printStackTrace();
   }//end finally try
   }//end try
   System.out.println("Goodbye!");

   }//end main
}

오류가 발생했습니다.

  C:\JavaP>java -cp .;C:\JavaP\mysql-connector-java-3.1.14-bin-g Database1
  java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at Database1.main(Database1.java:17)
   Goodbye!

몇 시간 동안 인터넷 검색 및 온라인 검색을 한 후 마침내 문제를 해결할 수있었습니다. 자바 프로그램이 실행될 수 있습니다.)

하지만 이제 다른 문제가 있습니다.

 C:\JavaP>java -cp .;C:\JavaP\mysql-connector-java-3.1.14-bin-g.jar Database1
 Exception in thread "main" java.lang.NoClassDefFoundError: org/aspectj/lang/Signature
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at Database1.main(Database1.java:17)
Caused by: java.lang.ClassNotFoundException: org.aspectj.lang.Signature
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 3 more

 

해결 방법

 

org.aspectj.lang.Signature 클래스가 포함 된 jar 파일의 위치를 ​​ classpath 추가 해야합니다. >

처럼.

java -cp .;C:\JavaP\mysql-connector-java-3.1.14-bin-g.jar;C:\JavaP\aspectj.jar Database1

 

참조 페이지 https://stackoverflow.com/questions/24033649

 

 

반응형

댓글