Maven Maven ClassNotFoundException MySQL JDBC Treiber

VoLLioMenTT

Neues Mitglied
Hey java-forum.org,
das ist ist mein erster Post hier, also ich hoffe ihr seid nachsichtig falls ich irgendetwas falsch machen sollte.

Zu meinem Problem:
Ich benutze VS Code und Maven, mein ziel ist es eine verbindung zu einer MySQL Datenbank herzustellen also habe ich in der pom.xml die dependency für den mysql-connector hinzugefügt:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.12</version>
</dependency>

und um den Treiber zu laden ist das hier in meiner main function:

Class.forName("com.mysql.cj.jdbc.Driver").newInstance();

so führe ich das programm aus:

mvn exec:java

hier das plugin in der pom.xml dazu:

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>

<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>

<mainClass>com.VoLLioMenTT.app.App</mainClass>
<arguments>
<argument>foo</argument>
<argument>bar</argument>
</arguments>
</configuration>
</plugin>

und hier die error message:

unreported exception java.lang.ClassNotFoundException; must be caught or declared to be thrown

Die .jar Datei vom mysql-connector befindet sich im Maven Repository das hab ich schon nachgeprüft.
Ich hoffe jemand hat eine lösung für mich habe es auch schon ohne Maven als standalon java Datei über die cmd (und die .jar Datei zur CLASSPATH Variable hinzugefügt), sowie mit Eclipse versucht. Doch selbst nach ca. 4 Stunden googeln hab ich es immernoch nicht geschafft.
 
Das hat mit dem Treiber gar nichts zu tun. Die Methode Class.forName kann eine ClassNotFoundException werfen, die in der aufrufenden Methode behandelt werden muss. Das machst Du nicht und deshalb gibt der Compiler einen Fehler aus.

Unabhängig davon:
1. das newInstance() brauchst Du nicht
2. Class.forName() brauchst Du auch nicht.
 

Zurück
Oben