首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java.lang.ClassNotFoundException: org.sqlite.JDBC程序中的org.sqlite.JDBC错误

java.lang.ClassNotFoundException: org.sqlite.JDBC程序中的org.sqlite.JDBC错误
EN

Stack Overflow用户
提问于 2013-08-06 20:34:55
回答 6查看 66.7K关注 0票数 12

我正在尝试让Xerial的示例类在Eclipse中工作,但是我一直得到错误"ClassNotFoundException: org.sqlite.JDBC“

我从https://bitbucket.org/xerial/sqlite-jdbc/downloads下载了sqlite 3.7.2.jar文件。将其复制到eclipse中我的项目"database_test“下的lib文件夹中。然后右键单击Project->Properties->Java >Libraries->Add>选择jar文件。我正在尝试执行以下Xerial的代码:https://bitbucket.org/xerial/sqlite-jdbc#markdown-header-usage

代码语言:javascript
运行
复制
// load the sqlite-JDBC driver using the current class loader
Class.forName("org.sqlite.JDBC");

Connection connection = null;
try
{
  // create a database connection
  connection = DriverManager.getConnection("jdbc:sqlite:sample.db");
  Statement statement = connection.createStatement();
  statement.setQueryTimeout(30);  // set timeout to 30 sec.

  statement.executeUpdate("drop table if exists person");
  statement.executeUpdate("create table person (id integer, name string)");
  statement.executeUpdate("insert into person values(1, 'leo')");
  statement.executeUpdate("insert into person values(2, 'yui')");
  ResultSet rs = statement.executeQuery("select * from person");
  while(rs.next())
  {
    // read the result set
    System.out.println("name = " + rs.getString("name"));
    System.out.println("id = " + rs.getInt("id"));
  }
}
catch(SQLException e)
{
  // if the error message is "out of memory", 
  // it probably means no database file is found
  System.err.println(e.getMessage());
}
finally
{
  try
  {
    if(connection != null)
      connection.close();
  }
  catch(SQLException e)
  {
    // connection close failed.
    System.err.println(e);
  }
}

}}

我去过的每个站点都说过,将jar文件添加到构建路径或类路径中,我相信我已经这样做了,但是没有解决问题。任何帮助都将不胜感激。谢谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-08-09 15:26:37

感谢用户的帮助/想法。

我错过了明显的Xerial上示例程序的命令行指令。为了让程序从命令行运行,我必须将JAR文件复制到与.CLASS文件相同的文件夹中。然后运行以下命令:

代码语言:javascript
运行
复制
java -classpath ".:sqlite-jdbc-(VERSION).jar" Sample

引号内有多个路径,在Unix下通过冒号(:)分隔,在Windows下通过分号(;)分隔。点作为路径之一是重要的-仅仅命名JAR文件是不够的。对Windows的全面调用将是:

代码语言:javascript
运行
复制
"%JAVA_HOME%\bin\java.exe" -cp "sqlite-jdbc-(VERSION).jar;." Sample

注意分号而不是冒号。路径的顺序并不重要,-cp-classpath一样,只是比较短。

票数 11
EN

Stack Overflow用户

发布于 2021-02-04 15:59:14

您可以将项目转换为maven并将依赖项(从https://mvnrepository.com)转换为pom.xml,如下所示:

代码语言:javascript
运行
复制
</dependency>
    <!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
    <dependency>
        <groupId>org.xerial</groupId>
        <artifactId>sqlite-jdbc</artifactId>
        <version>3.34.0</version>
    </dependency>
票数 4
EN

Stack Overflow用户

发布于 2017-07-13 22:26:16

当您处理桌面JAVA应用程序时,上述所有解决方案都工作得很好。在WebAPP应用程序的情况下,以下解决方案将无法工作。实际上,这是应用程序服务器的问题所在,您需要在webapp /lib中添加sqlite,然后只有您才能成功地运行webapp。

为此,您可以执行以下步骤:

请转至:

项目->属性->部署程序集-> Add->档案来自文件系统-> Next -> Add

导航到拥有sqlite的文件夹,选择它并点击OK。

点击Finish。好的。

完成后,你现在应该可以运行你的应用程序了。

谢谢

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

https://stackoverflow.com/questions/18089952

复制
相关文章

相似问题

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