sqlite DB zur ausführbaren JAR-Datei hinzufügen

8

Ich benutze JAVA (mit Eclipse Juno) und versuche, eine ausführbare JAR-Datei zu erstellen, die eine SQLite-DB-Datei enthält. Ich habe versucht, durch diese Zeile Verbindung zur DB zu bekommen:

%Vor%

Der DataController ist eine Klasse, die sich dort befindet, wo sich der SQLite befindet.

und ich bekomme immer einen Fehler:

%Vor%

Kann jemand helfen und Schritt für Schritt Anweisungen geben, wie man sqlite DB in eine ausführbare JAR-Datei einfügt?

    
gran33 03.03.2013, 15:07
quelle

3 Antworten

10

Offenbar kann sqlite-jdbc selbst Ressourcen öffnen. Fügen Sie unter diesem Thema Ссылка Folgendes hinzu: Ressource zum Pfad. Also versuchen Sie Folgendes:

%Vor%

Ersetzen Sie das Paket durch den '/' getrennten Pfad zu dem Paket, in dem sich diese Datei befindet.

Beachten Sie, dass die Datei tatsächlich in ein tmp-Verzeichnis kopiert wird .-

    
jabbie 03.03.2013, 15:26
quelle
0

Der ::resource Weg ist richtig. Und diese Erklärungen helfen dir, wenn du ::resource benutzt aber immer noch Fehler wie resource database.db not found: java.net.MalformedURLException: no protocol: database.db wie verdana bekommst.

Die häufigsten Anwser sind: DriverManager.getConnection("jdbc:sqlite::resource:path/to/database.db")

Allerdings muss path/to/database.db der genaue Pfad ( Pfad in Real File System, aber nicht in Jar ) für Ihre jar-Datei sein.

Ich empfehle, getClass().getResource() :

zu verwenden %Vor%

HINWEIS : Der /path/to/db/in/the/jar/file -Teil muss mit /

beginnen     
sadhen 14.04.2016 13:46
quelle
0

Ich bin mir nicht sicher, ob sich das in den letzten JDBC-Versionen geändert hat, aber nachdem ich ungefähr eine Stunde damit herumgespielt und verschiedene Ausnahmen bekommen habe (MalformedURLException und "Datenbank wurde geschlossen"), habe ich Folgendes herausgefunden:

%Vor%

Der: file: Teil scheint in anderen Antworten zu fehlen, und ich konnte ihn nicht ohne ihn arbeiten lassen.

Beachten Sie auch, dass

%Vor%

ist der absolute Pfad, der vom Stamm der .jar-Datei ausgeht, anstatt eines normalen Ressourcenstamms.

    
Evan Rose 09.06.2017 15:58
quelle

Tags und Links