[英]No suitable driver found for jdbc:sqlite
我無法連接到我的 SQLite 數據庫。 在我的 Windows PC 上一切正常,但如果我想在 Linux(Raspberry PI)上運行我的程序,我會收到如標題所示的錯誤。
這是我在 Windows 上的連接:
public static final String DB_NAME = "settings.db";
public static final String CONNECTION_STRING = "jdbc:sqlite:C:\\Users\\oschr\\eclipse-workspace\\Dippmitteldosierer\\src\\" + DB_NAME;
在為 Linux 導出程序之前,我更改了連接字符串:
public static final String CONNECTION_STRING = "jdbc:sqlite:/home/pi/Desktop/" + DB_NAME;
如果沒有數據庫,我使用以下代碼創建它:
String url = CONNECTION_STRING;
try {
try {
Class.forName("org.sqlite.JDBC");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
connection = DriverManager.getConnection(url);
statement = connection.createStatement();
statement.execute("CREATE TABLE IF NOT EXISTS " + TABLE_VORWAHLMENGEN + "( " + COLUMN_VORWAHLNAME + " TEXT, " + COLUMN_VORWAHLMENGE + " INTEGER)");
statement.execute("CREATE TABLE IF NOT EXISTS " + TABLE_KALIBRIERUNGEN + "( " + COLUMN_KALIBRIERUNGNAME + " TEXT, " + COLUMN_KALIBRIERUNGMENGE + " INTEGER)");
這是我的構建路徑:
這是我的項目:
有人可以幫我嗎?
您正在使用一些您在問題中沒有解釋的過程來制作 jar。 然后,您將此 jar 運送到 pi 並在那里運行。
您正在使用的過程只是將您的代碼轉換為 jar。 它不包括您的所有依賴項; 通常不會這樣做,因為它會使 jars 變得巨大,並使更新復雜化。
You need to end up with a jar that has a Class-Path
entry in the manifest that lists jdbc-sqlite.jar
, and then ensure that this jar is available in the same directory as 'sibling' to yourapp.jar
. 如何? 好吧,這取決於將 class 文件轉換為 jar 文件的任何過程。
java -jar
來運行它。 You can do the above by hand, if you run java -jar sqlite.jar:yourapp.jar com.foo.YourMainClass
there.
更新該過程,以便將 dep(s) 條帶化為單個巨大的所有內容 jar。 通常,您需要一個構建系統,例如 maven 或 gradle 來執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.