2013-10-12 45 views
0

我在我的android应用程序中遇到问题。 这是我的一段代码。任何人都可以给我一个解决方案。我知道这种类型的连接不安全,但我使用这个应用程序只有我的手机。打开跟踪文件时出错:没有这样的文件或目录| java.lang.ClassNotFoundException:net.sourceforge.jtds.jdbc.Driver

public class testConnection 
{ 
    public void doConnect() 
    { 
     DB db = new DB(); 
     db.dbConnect("jdbc:jtds:sqlserver://192.168.1.3/Test","sa","@[email protected]"); 
    } 
} 

class DB 
{ 
    public DB() {} 

    public void 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(); 
     } 
    } 
}; 

如下错误

java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver 
    at java.lang.Class.classForName(Native Method) 
    at java.lang.Class.forName(Class.java:217) 
    at java.lang.Class.forName(Class.java:172) 
    at info.elshan.sqlserver.SqlServer$DB.dbConnect(SqlServer.java:118) 
    at info.elshan.sqlserver.SqlServer$testConnection.doConnect(SqlServer.java:106) 
    at info.elshan.sqlserver.SqlServer$RetreiveFeedTask.doInBackground(SqlServer.java:48) 
    at info.elshan.sqlserver.SqlServer$RetreiveFeedTask.doInBackground(SqlServer.java:1) 
    at android.os.AsyncTask$2.call(AsyncTask.java:287) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
    at java.lang.Thread.run(Thread.java:856) 
Caused by: java.lang.NoClassDefFoundError: net/sourceforge/jtds/jdbc/Driver 
    13 more 
Caused by: java.lang.ClassNotFoundException: Didn't find class "net.sourceforge.jtds.jdbc.Driver" on path: /data/app/info.elshan.sqlserver-1.apk 
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 

我还添加了图书馆如下。

External Libs Added! External Libs Added!

回答

2

ClassNotFoundError是当它不能找到某一类类加载器抛出。在这种情况下,它是net.sourceforge.jtds.jdbc.Driver类,这意味着jtds.jar不在类路径中。如果您收到此在的应用程序,启动应用程序与

java -cp <path_to_jtds>/jtds.jar <main_class> 

如果你在一个servlet中遇到此问题/ JSP你将不得不jtds.jar添加到您的Web应用程序的类路径(例如,通过编辑应用程序的web.xml文件或将jar复制到应用程序的/ server的/ lib目录中)。

注:jTDS jar文件的名称可能是jtds-1.2.jar或类似的东西。如果是这样的话,用上面的例子中的jtds.jar替换为jtds-1.2.jar或者你的特定文件名。

相关问题