2011-10-03 4 views

답변

5

ANDROID에서 JTDS를 사용하여 SQLSERVER에 액세스하는 동안 "ClassNotFoundException"오류가 발생합니까?

3 시간 후 RND. 위의 동일한 오류에 대한 해결책 찾기. 나는 코드에 오류가 없다는 것을 알아 채지 못했습니다. 또한 "jtds-1.3.0"임포트 라이브러리가 계속해서 동일한 오류를 반복해서 가져 오는 코드 디버깅을 계속합니다.

{ 
Class.forName("net.sourceforge.jtds.jdbc.Driver"); 

Connection conn = DriverManager.getConnection(
db_connect_string, db_userid, db_password); 
} 

은 내가이 모든 것을 시도 할 때

...... (new Driver()).getClass(); 

...... (new Driver()) 

에 라인

...... Class.forName("net.sourceforge.jtds.jdbc.Driver"); 

을 변경, 대안을 시도, 나는 jtds 라이브러리-1.3.0 라이브러리에 문제가있을 수 있습니다 문질러서 , 그리고 내가 한 일은 단지 이전 버전 인 jtds-1.2.5를 다운로드하고 가져 오기만하면된다. 문제가 해결되었습니다.

그래서 친구가 있습니다. 동일한 오류가 발생하여 이미 다른 방법을 시도했다면 시도해보십시오.

+2

참고 jtds-1.3.0을 시험해 보았다. JAVA APPLICATION으로 시험해 보았다. 제대로 작동했지만, 안드로이드와는 작동하지 않았다. .. 이유를 알고! – smkrn110

+0

동일한 오류가 발생했습니다. 1.3.0을 사용하여 Java 응용 프로그램을 만들었지 만 Android에서는 작동하지 않으므로 jtds-1.2.5.jar을 다운로드하고 jtds-1.3.0으로 교체하십시오. 그리고 효과가있었습니다. – smkrn110

3

그것은 jTDS를 웹 사이트에 아무런 예제 코드가 없다는 것을 이상해. 나는이 발견, 그것은 도움이 될 수 있습니다

http://www.java-tips.org/other-api-tips/jdbc/how-to-connect-microsoft-sql-server-using-jdbc-3.html

import java.sql.*; 

public class testConnection 
{ 
    public static void main(String[] args) 
    { 
     DB db = new DB(); 
     db.dbConnect("jdbc:jtds:sqlserver://localhost:1433/tempdb","sa",""); 
    } 
} 

class DB 
{ 
    public DB() {} 

    public voidn dbConnect(String db_connect_string, String db_userid, String db_password) 
    { 
     try 
     { 
      Class.forName("net.sourceforge.jtds.jdbc.Driver"); 
      Connection conn = DriverManager.getConnection(
      db_connect_string, db_userid, db_password); 
      System.out.println("connected"); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
    } 
}; 

편집 :
메인 클래스를 찾을 수없는 경우가 ClassNotFoundException 예외를 얻을 것이다.

또한
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.ezee.app" 
/*...*/ 
<activity android:name=".connect12" 

것은 당신이 안드로이드를 사용하는 경우 클래스, your_project_folder/src/com/ezee/app/connect12 (I 생각 대소 문자 구분) 내 경험에

+1

나는 당신의 코드를 실행한다. 나는 아래 코드와 같이 logcat을 게시한다. – Piyush

+0

@Piyush는 나의 편집을 참조한다. – Caner

0

에 존재하는지 확인하십시오가 올바른지 확인하여 AndroidManifest.xml에서 다음 행을 찾기 SQL Server의 독립 실행 형 설치의 경우 localhost 서버에 액세스하기위한 Android 사양에 따라 "localhost"또는 "127.0.0.1"대신 10.0.2.2 주소를 사용해야합니다.

나는 그렇게 시도하고 성공적으로 내 SQL Server에 연결했습니다.

0
Exception in thread "main" java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver 
    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 com.test.objectref.GroupBy.main(GroupBy.java:12) 

이 문제를 해결하려면 Jtds lib을 추가해야했습니다.

관련 문제