简体   繁体   中英

java.lang.ClassNotFoundException: org.sqlite.JDBC error in Sample.java program from xerial

I am trying to get Xerial's Sample class to work in Eclipse with sqlite, but I keep getting the error "ClassNotFoundException: org.sqlite.JDBC"

I downloaded the sqlite-jdbc-3.7.2.jar file from https://bitbucket.org/xerial/sqlite-jdbc/downloads . Copied it into the lib folder under my project "database_test" in eclipse. Then right-clicked on the Project->Properties->Java Build Path->Libraries Tab->Add JARs->Select the jar file. I am trying to execute this code from Xerial found here: https://bitbucket.org/xerial/sqlite-jdbc#markdown-header-usage

// 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);
  }
}

} }

Every site I have been to has said add the jar file to your build path or class path and I believe I have done that, but nothing has solved the problem. Any help would be appreciated. Thanks.

Thanks to user phew for the help/ideas.

I missed the obvious command line instructions on Xerial's site for the Sample program . To get the program to run from the command line, I had to copy the JAR file into the same folder as the .CLASS file. Then run the following command:

java -classpath ".:sqlite-jdbc-(VERSION).jar" Sample

Inside the quotation marks are multiple paths, separated thru a colon ( : ) under Unix and a semicolon ( ; ) under Windows. The dot as one of the paths is important - only naming the JAR file alone is not enough. A full call on Windows would be:

"%JAVA_HOME%\bin\java.exe" -cp "sqlite-jdbc-(VERSION).jar;." Sample

Note the semicolon instead of the colon. The order of the paths do not really matter, and -cp does the same as -classpath , just shorter.

you can add it by converting your project to maven and the dependency(from https://mvnrepository.com ) to your pom.xml as:

</dependency>
    <!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
    <dependency>
        <groupId>org.xerial</groupId>
        <artifactId>sqlite-jdbc</artifactId>
        <version>3.34.0</version>
    </dependency>

All the above solutions works well, when you are dealing with the desktop JAVA Application. In the case of WebAPP Application, following above solutions will not work. Actually it is the issue with your App server, that is you needed to add sqlite-jar under your WEB-INF/lib and then only you will be able to run your webapp successfully.

For doing so you can follow below steps:

Go to:

Project-> Properties-> Deployment Assembly-> Add-> Archives From File System -> Next -> Add

Navigate to the folder where you have your sqlite-jar, select it and hit OK.

Click Finish. OK.

Done, you should be able to run your app now.

Thanks

对我有用的一种方法是转到 JRE 系统库 -> 右键单击​​ -> 构建路径 -> 配置构建路径 -> 添加外部 jar -> 选择 jar 并编译。

first you can download sqlite-jdbc-3.8.11.2 and after add jar file in your project

Window > Show_view > Package Explorer

step-1: right click on referenced libraries
step-2: select Built path
step-3: configure Built path
step-4: Add External jars file
step-5: add sqlite-jdbc-3.8.11.2
step-6: ok

or second way useful


your project can set the Classpath : Lib/sqlite-jdbc-3.8.11.2.jar

1)create a folder "Lib" in your project workspace 
2)"Lib" folder paste jar file like "sqlite-jdbc-3.8.11.2.jar"
3)After Double click on your project file i.e. 'MANIFEST.MF'
4)select Runtime(Bottom view panel) 
5)plug-in Classpath(Bottom_right position) to add jar file like "Lib/sqlite-jdbc-3.8.11.2.jar"

this working 100% sure..thanks

As said before, add the jar File to your Project.

For Android Studio / IntelliJ you just go this way:

File > Project Structure >

在此处输入图片说明

New Module >

在此处输入图片说明

Import .JAR/.AAR Package

在此处输入图片说明

Now select/add your .jar File and let IntelliJ do the rest.

Step 1:

Copy sqlite library.


Step 2:

paste the library in 'WebContent/WEB-INF/lib' directory you can also do it by selecting 'lib' folder in eclipse and pressing Ctrl + V

Step 3:

Restart the server and hopefully problem should be fixed


The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM