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?
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 .-
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()
:
HINWEIS : Der /path/to/db/in/the/jar/file
-Teil muss mit /
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.