2013-07-09 2 views
-1

유형 4 연결의 jdbc를 사용하여 데이터베이스에 연결하는 프로그램을 작성했습니다. 프로그램은 정상적으로 컴파일되지만 java.lang.ClassNotFoundException : com.mysql.jdbc.Driver의 예외를 제공합니다. 내 자바 파일이있는 폴더에있는 모든 폴더의 압축을 푼 다음 모든 jar 파일과 데이터베이스를 같은 폴더에 저장했습니다. 데이터베이스에는 ID가 1과 2 인 두 개의 레코드가 들어 있습니다.mysql을 사용한 JDBC 유형 4 연결

import java.sql.*; 

class TestJDBC { 

public static void main(String aa[]) { 

    try { 
     Class.forName("com.mysql.jdbc.Driver"); 

     Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/Student_Details", "root",""); 

     Statement stmt = con.createStatement(); 

     ResultSet rs = stmt.executeQuery("Select ID, studentname from Details where ID=1"); 

     while(rs.next()) { 
      System.out.print(rs.getString("ID")); 
      System.out.print("\t"); 
      System.out.println(rs.getString("StudentName")); 
     } 
    } 
    catch(Exception e) { 
     System.out.println(e); 
    } 
} 

}

답변

3

당신의 mysql-connector-java-5.0.8-bin.jar 파일은

cmd를 프롬프트 (가정 창)와 다음 enter image description here

이 폴더로 변경 디렉토리, 당신은 컴파일 할 필요가 아래처럼 프로젝트 내에서 \lib\ 같은 경로에 위치하는 경우 하지 창 : 경우

javac -cp ".;lib/mysql-connector-java-5.0.8-bin.jar" YourClass.java 

사용과 클래스 (단 따옴표가 필요하면 파일 공간/폴더 이름)

은 다음

1

당신은 클래스 경로에 com.mysql.jdbc.Driver가 들어있는 항아리가 필요

예를 들어 mysql.jar는 클래스 파일

이 들어있는 항아리입니다

java -cp mysql.jar;. TestJDBC

윈도우 머신

은 같은 폴더에 mysql-connector-java-5.0.8-bin.jarTestJDBC.class를 배치했다. 폴더에서

예상대로 작동 java -cp mysql-connector-java-5.0.8-bin.jar;. TestJDBC

을 실행. 명령 줄에서 클래스 경로는 cmd를의 특정 현재 인스턴스에 대한 (내 지식의 가장으로) 경로를 설정하는 설정 BevynQ 응답으로 당신이 종료하면

유닉스는 보통/닫기,

java -cp mysql-connector-java-5.0.8-bin.jar:. TestJDBC

+0

그것을 시도하지만 당신이 IDE를 사용하고 여전히 같은 예외 –

+0

를 받고 사용 중복 항아리를 가지고 있겠지 확인 또한

java -cp ".;lib/mysql-connector-java-5.0.8-bin.jar" YourClass 

실행? – BevynQ

+0

아니요 명령 줄 사용 –

0

이 필요 명령 프롬프트를 다시 열고 다시 경로를 설정해야합니다. 이 런타임에 사용할 수 있도록, 프로그램 파일/자바/JRE/lib 폴더에

  • 솔루션 1) 복사 jar 파일 : 나는 프로그램에서 jar 파일을 사용하려면이 두 가지 솔루션을 추측 그러나 JDK/JRE에 jar 파일을 추가하는 것은 권장되지 않습니다.

  • 는 런타임 환경에 사용할 수 있도록, 당신의 jar 파일 위치의 전체 경로를 배치하려면 클래스 경로 변수를 설정 2) 해결 방법 : 당신의 jar 파일의 위치 복사 전체 경로, 환경 변수로 이동 사용자/시스템 classpath 변수 (현재 로그인 사용자에 대한 사용자 변수, 현재 창에있는 모든 사용자 계정에 대한 시스템 변수)가 있으면이를 편집하고 경로를 시작하고, 그렇지 않으면 새 classpath 변수를 작성하고 전체를 두십시오 경로

Look here to set class-path-

+0

클래스 패스를 작동 시키려면 jar 파일을 JDK에 두지 마십시오. JDK libs (및 일부 확장 라이브러리) 용입니다. 또한'CLASSPATH' 환경 변수는 '실제'Java 프로그램에서 거의 사용되지 않습니다. 당신은 일반적으로 그 존재를 무시해야합니다. –

+0

@ Mark Rotteveel : 좋은 제안에 감사드립니다. 그러나 클래스 패스를 설정함으로써 내 지식 중 가장 좋은 점은 java 런타임 환경 (특정 API 관련 jar 파일을 찾아 클래스 및 기타 API 리소스를 찾을 위치)에 알리는 것입니다. 제가 오도하는 경우 알려주십시오. –

+0

네, 클래스 패스가 그렇습니다. 그러나 일반적으로 환경 변수'CLASSPATH'는 응용 프로그램의 클래스 경로를 정의하는 데 사용되지 않습니다 (예 :'java -cp ...'또는'java -jar ...', Java Webstart 등,'CLASSPATH'는 무시됩니다) –