0

Android アプリケーションで問題が発生しています。これが私のコードです。誰かがその解決策を教えてくれますか?

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

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)

以下のようにライブラリも追加しました。

外部ライブラリが追加されました! 外部ライブラリが追加されました!

4

1 に答える 1

2

ClassNotFoundError は、特定のクラスが見つからない場合にクラスローダによってスローされます。この場合、これは net.sourceforge.jtds.jdbc.Driver クラスです。つまり、jtds.jar はクラスパスにありません。アプリケーションでこれを取得している場合は、アプリケーションを次のように開始します

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

サーブレット/JSP でこの問題が発生した場合は、jtds.jar を Web アプリケーションのクラス パスに追加する必要があります (たとえば、アプリケーションの web.xml ファイルを編集するか、jar をアプリケーションの /server の /lib ディレクトリにコピーします)。

注: jTDS jar ファイルの名前は、jtds-1.2.jar または類似の名前になります。その場合は、上記の例の jtds.jar を jtds-1.2.jar または特定のファイル名に置き換えてください。

于 2013-10-12T04:37:40.350 に答える