In der IntelliJ IDEA die JDBC Treiber bzw externe .jar Verzeichnisse hinzufügen?
Hallo,
ich probiere seit gestern Abend die JDBC Bibliothek hinzuzufügen. Leider bekomme ich das nicht hin.
Ich habe die Bibliothek in dem Fenster, was man mit Strg + Shift + Alt + S öffnet, hinzugefügt (genauso wie die von JavaFX, nur da funktioniert es nun) und bei Edit configurations das als VM option hinzugefügt: "--module-path /media/ich/DATA/Java/javafx-sdk-11.0.2/lib/ --add-modules javafx.controls"
Ich habe probiert hinten ein "--classpath /pfad/zur/Bibliothek/" einzufügen, aber es hat nicht geklappt.
Ich hoffe mir kann jemand helfen.
Liebe Grüße
Wenn ich --classpath ... hinter die restlichen VM options schreibe, kennt es --classpath nicht (es kommt eine Fehlermeldung und das Programm lässt sich nicht ausführen).
Wäre super, wenn mir jemand erklären könnte, wie man externe Bibliotheken einbindet in IDEA.
Wenn ich es einfach so ausführe ohne etwas bei "Edit Configuration" einzustellen, aber mit hinzufügen der Bibliothek im Fenster, dass man mit Strg + Alt + Shift + S öffnet, kommt die Fehlermeldung:
java.lang.ClassNotFoundException: SQLite.JDBCDriver
Code:
private Connection getConnection() throws SQLException {
String url = "jdbc:sqlite::db/" + DATABASE_NAME + ".db";
Connection conn = null;
try {
Class.forName("SQLite.JDBCDriver");
conn = DriverManager.getConnection(url);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return conn;
}
2 Antworten
Die erste Regel für jedes Projekt ist, Maven oder meinetwegen Gradle zu verwenden, statt die IDE-spezifische Buildkonfiguration.
Aber wenn es unbedingt sein muss - es reicht normalerweise, unter Project Structure / Libraries die entsprechende Bibliothek einzutragen. Die landet dann automatisch auch im Classpath, wenn man aus der IDE startet.
Class.forName("SQLite.JDBCDriver");
Ist das bestimmt der richtige Klassenname? Eigentlich sollte Class.forName() schon lange nicht mehr nötig sein, das ist noch uraltes JDBC. Welchen Treiber verwendest du überhaupt?
???
Das ist ein Treiber für Oracle RDBMS. Der hat gar nichts mit SQLite zu tun. Du willst wohl diesen hier: https://github.com/xerial/sqlite-jdbc
Naja.. entweder die Bibliothek von JDBC neben deiner jar haben oder rein-compilieren. (Ist das bei JDBC überhaupt nötig?)
Rein-compilieren kannst du im Artefakt einstellen. Verfügbare Elemente -> JDBC -> in Output-root extrahieren
Hab ihn mir hier heruntergeladen: https://www.oracle.com/database/technologies/appdev/jdbc-ucp-19-8-c-downloads.html
Bzw dort die Datei "ojdbc10.jar ".
Ob das der richtige Klassenname ist, weiß ich nicht, zumindest stand es so im Internet.
Wenn ich die Zeile rausnehme, kommt:
java.sql.SQLException: No suitable driver found for jdbc:sqlite::db/dict.db
Nutze Linux, daher die "/" und nicht "\"