Я работаю с Eclipse (работает на Windows 8.1) и хочу получить доступ к базе данных sqlite. К сожалению, я не смог работать с драйвером, хотя я определил его местоположение в переменной CLASSPATH. Следующая программа одного из тысячи обучающих сайтов:Java & SQLite - еще один классNotFoundexception
package sqliteconnectiontest;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.DatabaseMetaData;
public class test {
public static void main(String[] args) throws Exception {
// register the driver
String sDriverName = "org.sqlite.JDBC";
Class.forName(sDriverName);
// now we set up a set of fairly basic string variables to use in the
// body of the code proper
String sTempDb = "hello.db";
String sJdbc = "jdbc:sqlite";
String sDbUrl = sJdbc + ":" + sTempDb;
// which will produce a legitimate Url for SqlLite JDBC :
// jdbc:sqlite:hello.db
int iTimeout = 30;
String sMakeTable = "CREATE TABLE dummy (id numeric, response text)";
String sMakeInsert = "INSERT INTO dummy VALUES(1,'Hello from the database')";
String sMakeSelect = "SELECT response from dummy";
// create a database connection
System.out.println(sDbUrl);
Connection conn = DriverManager.getConnection(sDbUrl);
try {
Statement stmt = conn.createStatement();
try {
stmt.setQueryTimeout(iTimeout);
stmt.executeUpdate(sMakeTable);
stmt.executeUpdate(sMakeInsert);
ResultSet rs = stmt.executeQuery(sMakeSelect);
try {
while (rs.next()) {
String sResult = rs.getString("response");
System.out.println(sResult);
}
} finally {
try {
rs.close();
} catch (Exception ignore) {
}
}
} finally {
try {
stmt.close();
} catch (Exception ignore) {
}
}
} finally {
try {
conn.close();
} catch (Exception ignore) {
}
}
}
}
я уже скачал SQLite-JDBC-драйвер 3.7.2.jar от http://www.xerial.org/maven/repository/artifact/org/xerial/sqlite-jdbc/3.7.2/
Водитель находится в:
B:\sqlite-jdbc-3.7.2.jar
Мой .class Файл:
B:\Progs\Java\sqlconnectiontest\bin\sqliteconnectiontest\test.class
CLASSP ATH переменная среды:
CLASSPATH=B:\sqlite-jdbc-3.7.2.jar;
Когда я пытаюсь запустить программу это исключение брошено:
Exception in thread "main" java.lang.ClassNotFoundException: org.sqlite.JDBC
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at sqliteconnectiontest.test.main(test.java:14)
Из того, что я нашел через Интернет эта проблема должна означать, что JDBC-драйвер не может но я нахожу свое направление в переменной среды CLASSPATH.
Добавить \t \t 'System.out.println (System.getProperty ("java.class.path"));' ' перед тем Class.forName' и проверить, если ваш каталог' jar' есть. –