In der IntelliJ IDEA die JDBC Treiber bzw externe .jar Verzeichnisse hinzufügen?


17.12.2020, 08:55

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

Vom Fragesteller als hilfreich ausgezeichnet

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?


SamanthaI 
Fragesteller
 17.12.2020, 10:04

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 "\"

0

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