簡體   English   中英

沒有找到適合 jdbc:sqlite 的驅動程序

[英]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 變得巨大,並使更新復雜化。

選項 1:帶有類路徑條目的可執行 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 文件的任何過程。

選項 2:不要使用java -jar來運行它。

You can do the above by hand, if you run java -jar sqlite.jar:yourapp.jar com.foo.YourMainClass there.

選項 3:條帶化

更新該過程,以便將 dep(s) 條帶化為單個巨大的所有內容 jar。 通常,您需要一個構建系統,例如 maven 或 gradle 來執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM