Hallo zusammen!
Ich habe ein Problem, welches ich auch nach stundenlangem Recherchieren im WWW nicht lösen kann.
Kurz beschrieben geht es um folgendes:
Ich habe kürzlich ein Projekt fertiggestellt, welches Daten ein einer MySQL-DB speichert/ausliest...
Jedenfalls wollte ich im nachhinein auf eine H2 embedded DB umstellen. Dazu habe ich die Dependency für Maven aus dem MavenRepo installiert, die Java Klasse angepasst. Ich habe die JAR File gebuildet, das ganze mit Launch4j noch zu einer .exe gebaut und anfänglich hat alles funktioniert. Nur geht es jetzt nicht mehr.
Das spannende daran: Wenn ich das ganze in IntelliJ IDEA starte (javafx:run als Mavengoal) dann funktioniert es ohne Probleme! Aber sobald ich versuche die gebuildete .jar Datei auszuführen, bekomme ich den Fehler: "SQLException: No suitable driver found" obwohl ich nichts wirklich geändert habe im Vergleich zur funktionierenden Version. Genau der selbe Code funktioniert in der IDE problemlos.
Der Code sieht so aus (DB Connection Klasse):
[CODE lang="java" title="DatabaseController"]public class DatabaseController {
private static final String USERNAME = "guard";
private static final String PASSWORD = "guard+22";
/**
* Establishes a connection and returns the connection object.
*
* @return Connection object
* @throws SQLException If the connection fails, a SQLException is thrown.
*/
public Connection connect() throws SQLException {
return DriverManager.getConnection("jdbc:h2:~/guard", USERNAME, PASSWORD);
}
}[/CODE]
Ich habe alles mögliche probiert:
- mvn clean install
- IDE Caches leeren und mehrere Restarts
- Downgrade der H2 Version in der pom.xml (diese befindet sich weiter unten)
- Treiber per "Class.forName()" versucht zu laden
- etc. etc.
NICHTS hilft....
Hoffe dass hier jemand einen guten Rat für mich hat.... vielen Dank schonmal!
Hier noch die Pom.xml ...
[CODE lang="xml" title="pom.xml"]<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>at.christianreisenauer</groupId>
<artifactId>DrugGuard</artifactId>
<version>1.0</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>16</maven.compiler.source>
<maven.compiler.target>16</maven.compiler.target>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>17-ea+11</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>17-ea+11</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-shade-plugin -->
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
<!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.197</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>16</release>
</configuration>
</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.4</version>
<configuration>
<mainClass>application.App</mainClass>
</configuration>
</plugin>
<!-- build a runnable jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>application.App</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>[/CODE]
Nochmals herzlichen Dank im Vorhinein!!
Beste Grüße
Christian
Ich habe ein Problem, welches ich auch nach stundenlangem Recherchieren im WWW nicht lösen kann.
Kurz beschrieben geht es um folgendes:
Ich habe kürzlich ein Projekt fertiggestellt, welches Daten ein einer MySQL-DB speichert/ausliest...
Jedenfalls wollte ich im nachhinein auf eine H2 embedded DB umstellen. Dazu habe ich die Dependency für Maven aus dem MavenRepo installiert, die Java Klasse angepasst. Ich habe die JAR File gebuildet, das ganze mit Launch4j noch zu einer .exe gebaut und anfänglich hat alles funktioniert. Nur geht es jetzt nicht mehr.
Das spannende daran: Wenn ich das ganze in IntelliJ IDEA starte (javafx:run als Mavengoal) dann funktioniert es ohne Probleme! Aber sobald ich versuche die gebuildete .jar Datei auszuführen, bekomme ich den Fehler: "SQLException: No suitable driver found" obwohl ich nichts wirklich geändert habe im Vergleich zur funktionierenden Version. Genau der selbe Code funktioniert in der IDE problemlos.
Der Code sieht so aus (DB Connection Klasse):
[CODE lang="java" title="DatabaseController"]public class DatabaseController {
private static final String USERNAME = "guard";
private static final String PASSWORD = "guard+22";
/**
* Establishes a connection and returns the connection object.
*
* @return Connection object
* @throws SQLException If the connection fails, a SQLException is thrown.
*/
public Connection connect() throws SQLException {
return DriverManager.getConnection("jdbc:h2:~/guard", USERNAME, PASSWORD);
}
}[/CODE]
Ich habe alles mögliche probiert:
- mvn clean install
- IDE Caches leeren und mehrere Restarts
- Downgrade der H2 Version in der pom.xml (diese befindet sich weiter unten)
- Treiber per "Class.forName()" versucht zu laden
- etc. etc.
NICHTS hilft....
Hoffe dass hier jemand einen guten Rat für mich hat.... vielen Dank schonmal!
Hier noch die Pom.xml ...
[CODE lang="xml" title="pom.xml"]<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>at.christianreisenauer</groupId>
<artifactId>DrugGuard</artifactId>
<version>1.0</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>16</maven.compiler.source>
<maven.compiler.target>16</maven.compiler.target>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>17-ea+11</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>17-ea+11</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-shade-plugin -->
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
<!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.197</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>16</release>
</configuration>
</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.4</version>
<configuration>
<mainClass>application.App</mainClass>
</configuration>
</plugin>
<!-- build a runnable jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>application.App</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>[/CODE]
Nochmals herzlichen Dank im Vorhinein!!
Beste Grüße
Christian