首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java.lang.ClassNotFoundException: org.sqlite.JDBC Androidstudio Java模块

java.lang.ClassNotFoundException: org.sqlite.JDBC Androidstudio Java模块
EN

Stack Overflow用户
提问于 2018-04-02 13:37:57
回答 4查看 2.2K关注 0票数 8

我不知道(太愚蠢了),为什么我的应用在运行时找不到jdbc类:

代码语言:javascript
运行
复制
Exception in thread "main" java.lang.ClassNotFoundException: org.sqlite.JDBC

你有什么提示吗?在此存储库中完成简化用例:https://bitbucket.org/solvapps/jdbcapp

我已经在我的Androidstudio项目中添加了一个名为“maintaining”的模块来维护东西,它不应该包含在应用程序中。(我已经用另一个应用程序做到了这一点)。

我的维护gradle:

代码语言:javascript
运行
复制
apply plugin: 'java'

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

sourceCompatibility = "1.8"
targetCompatibility = "1.8"

repositories {
    mavenCentral()
}


dependencies {
    compile 'org.xerial:sqlite-jdbc:3.16.1'
    compile 'commons-net:commons-net:3.3'
    compile 'org.zeroturnaround:zt-zip:1.11'
    compile 'org.zeroturnaround:zt-zip:1.11'
    compile 'org.apache.commons:commons-lang3:3.5'
}

同步之后,我在外部库中看到了jar。

我的代码不是红色的:

代码语言:javascript
运行
复制
 public static void connect(String language, boolean readonly) throws SQLException, ClassNotFoundException, IOException {

        // Hole DBPath
        String dbpath = Constants.getDbName(language);

        Class.forName("org.sqlite.JDBC");
        SQLiteConfig config = new SQLiteConfig();

        if (readonly){
            config.setReadOnly(true);
        }else{
            config.setReadOnly(false);
        }

        connection = DriverManager.getConnection("jdbc:sqlite:" + dbpath,config.toProperties());
    }

错误:

代码语言:javascript
运行
复制
Exception in thread "main" java.lang.ClassNotFoundException: org.sqlite.JDBC
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at solveraapps.maintain.DbService.connect(DbService.java:24)
EN

回答 4

Stack Overflow用户

发布于 2018-04-09 05:12:11

代码语言:javascript
运行
复制
try{  
        Class.forName("com.mysql.jdbc.Driver");  
        Connection con;
        con=DriverManager.getConnection("jdbc:mysql://localhost:8080/DBName","root","root");  
        //here DBName is database name, root is username and password  
        Statement stmt=con.createStatement();  
        ResultSet rs=stmt.executeQuery("select * from Table_name");
        //Table_name is Table Name Which Must Exist IN Your Database
        while(rs.next())  
        System.out.println(rs.getInt(1)+"  "+rs.getString(2)+"  "+rs.getString(3));  
        con.close();  
    }catch(Exception e){ System.out.println(e);}  
    } 

您必须将mysql-connector.jar文件添加到库中,您可以从Here下载文件

票数 4
EN

Stack Overflow用户

发布于 2018-04-12 20:59:24

org.sqlite.JDBC属于sqlite-jdbc jar,您需要在类路径中包含此jar。您可以使用gradle从maven存储库下载jar。找出花园的去处

代码语言:javascript
运行
复制
compile 'org.xerial:sqlite-jdbc:3.8.11'
票数 1
EN

Stack Overflow用户

发布于 2018-04-12 21:51:07

看起来您已经将该库添加到了项目中,但是没有将该库添加到模块的依赖项中:Take Look At Here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49605851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档