打开跟踪文件时出错:没有这样的文件或目录 | java.lang.ClassNotFoundException:net.sourceforge.jtds.jdbc.Driver

Posted

技术标签:

【中文标题】打开跟踪文件时出错:没有这样的文件或目录 | java.lang.ClassNotFoundException:net.sourceforge.jtds.jdbc.Driver【英文标题】:error opening trace file: No such file or directory | java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver 【发布时间】:2013-10-12 04:24:13 【问题描述】:

我的 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)

我还添加了如下库。

【问题讨论】:

【参考方案1】:

类加载器在找不到某个类时抛出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 复制到应用程序/服务器的 /lib 目录)。

注意:jTDS jar 文件的名称可能是 jtds-1.2.jar 或类似名称。如果是这种情况,请将上面示例中的 jtds.jar 替换为 jtds-1.2.jar 或任何您的特定文件名。

【讨论】:

以上是关于打开跟踪文件时出错:没有这样的文件或目录 | java.lang.ClassNotFoundException:net.sourceforge.jtds.jdbc.Driver的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 中编译 ZBar 示例时出错:无法打开包含文件:'Magick++.h':没有这样的文件或目录

加载共享库时出错,无法打开共享对象文件:没有这样的文件或目录(hiredis)

加载共享库时出错:libgmock.so:无法打开共享对象文件:没有这样的文件或目录

加载共享库时出错:libgfortran.so.1:无法打开共享对象文件:没有这样的文件或目录

clang:加载共享库时出错:libtinfo.so.5:无法打开共享对象文件:没有这样的文件或目录

psql:加载共享库时出错:libpq.so.5:无法打开共享对象文件:没有这样的文件或目录