Hallo zusammen,
Ich habe ein Problem mit dem Zugriff auf eine access Datenbank mithilfe von ucanaccess.
Ich gehe stark davon aus, daß das Problem nicht wirklich etwas mit der Programmierung zu tun hat, sondern in der Erstellung des .jar-files liegt.
Für mich ist daß das erste größere Projekt in Java und mit Eclipse, Java habe ich früher schon einmal für kleinere Sachen benutzt, Eclipse als IDE noch nie zuvor, deshalb bin ich da noch nicht wirklich Firm und kämpfe mich so langsam durch alle Möglichkeiten der IDE durch.
Vermutlich habe ich da irgendwelche Einstellungen übersehen oder falsch gemacht.
Ich hänge unten nochmal einen Ausschnitt des Programms mit einem Datenbank-Zugriff an, auch wenn ich den Fehler eher in den Einstellungen im Eclipse vermute..
Vorweg erstmal die Konfiguration des ganzen:
Entwicklungsumgebung: Eclipse IDE 2023-03 (4.27.0)
Java Version: openJDK 17.0.6
ucanaccess Version: 5.0.1
Access-Version: 2007
Betriebssystem: Windows 10 Enterprise V. 22H2
Wenn ich das Programm aus dem Eclipse starte, funktioniert alles einwandfrei.
Vor ein paar Monaten hat auch die exportierte .jar-datei mit Datenbankzugriff funktioniert. Jetzt wollen wir eine neue Version verteilen und haben plötzlich folgendes Problem:
Exportiere ich das Programm als .jar-file, startet das Programm zwar, aber bei jedem Datenbankzugriff kommt folgende Fehlermeldung:
"No suitable driver found for jdbc:ucanaccess://C:\KAPA_PxF\KAPA_DB.accdb"
Ich starte dabei das .jar-file explizit mit der oben angegebenen Java-Version, die ich dem Programmordner hinzugefügt habe:
C:\KAPA_PxF\Java\eclipse-java-2023-03\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.6.v20230204-1729\jre\bin\javaw.exe -jar C:\KAPA_PxF\KAPA.jar
Ich greife in beiden Fällen auf das selbe Datenbank-File zu.
Das ist eine 1:1 Kopie des Ordners, auf den Eclipse zugreift, da diese Version bei uns nicht Standardmäßig installiert ist und deshalb mit verteilt werden soll.
Ich habe auch schon versucht, es aus dem Verzeichnis heraus zu starten, welches Eclipse nutzt und die beiden Ordner auch verglichen. Fehlermeldung und Ordnerinhalt sind identisch.
Ich experimentiere jetzt schon geraume Zeit mit verschiedenen build-Einstellungen, Library-Reihenfolgen und so weiter herum, habe auch schon versucht, ein buildfile dafür zu erstellen mit explizit zugewiesenem classpath und so weiter, aber ich bekomme immer wieder diese Fehlermeldung.
Auch wenn ich vermute, daß der Programmcode selber hier nicht das Problem ist, hier ein Beispiel für die Programmierung des Datenbankzugriffs:
public static String[] DB_ReadProjektmanager() {
ArrayList<String> alResult = new ArrayList<String>();
try {
Connection conn=DriverManager.getConnection(
"jdbc:ucanaccess://C:\\KAPA_PxF\\DB\\KAPA_DB.accdb");
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT [prj_man_name] FROM [V_Projektmanager]");
while (rs.next()) {
alResult.add(rs.getString(1));
}
}
catch (Exception ex) {
JOptionPane.showMessageDialog(null,"Datenbankfehler:"+ex.getMessage());
}
String[] aResult = new String[1];
aResult = alResult.toArray(aResult);
return aResult;
}
Ich habe übrigens auch schon versucht, statt Backslash den Slash zu benutzen, das hat keinen Unterschied gemacht.
Ich hoffe, daß mir irgendjemand helfen kann.
Gruß
Andreas
Ich habe ein Problem mit dem Zugriff auf eine access Datenbank mithilfe von ucanaccess.
Ich gehe stark davon aus, daß das Problem nicht wirklich etwas mit der Programmierung zu tun hat, sondern in der Erstellung des .jar-files liegt.
Für mich ist daß das erste größere Projekt in Java und mit Eclipse, Java habe ich früher schon einmal für kleinere Sachen benutzt, Eclipse als IDE noch nie zuvor, deshalb bin ich da noch nicht wirklich Firm und kämpfe mich so langsam durch alle Möglichkeiten der IDE durch.
Vermutlich habe ich da irgendwelche Einstellungen übersehen oder falsch gemacht.
Ich hänge unten nochmal einen Ausschnitt des Programms mit einem Datenbank-Zugriff an, auch wenn ich den Fehler eher in den Einstellungen im Eclipse vermute..
Vorweg erstmal die Konfiguration des ganzen:
Entwicklungsumgebung: Eclipse IDE 2023-03 (4.27.0)
Java Version: openJDK 17.0.6
ucanaccess Version: 5.0.1
Access-Version: 2007
Betriebssystem: Windows 10 Enterprise V. 22H2
Wenn ich das Programm aus dem Eclipse starte, funktioniert alles einwandfrei.
Vor ein paar Monaten hat auch die exportierte .jar-datei mit Datenbankzugriff funktioniert. Jetzt wollen wir eine neue Version verteilen und haben plötzlich folgendes Problem:
Exportiere ich das Programm als .jar-file, startet das Programm zwar, aber bei jedem Datenbankzugriff kommt folgende Fehlermeldung:
"No suitable driver found for jdbc:ucanaccess://C:\KAPA_PxF\KAPA_DB.accdb"
Ich starte dabei das .jar-file explizit mit der oben angegebenen Java-Version, die ich dem Programmordner hinzugefügt habe:
C:\KAPA_PxF\Java\eclipse-java-2023-03\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.6.v20230204-1729\jre\bin\javaw.exe -jar C:\KAPA_PxF\KAPA.jar
Ich greife in beiden Fällen auf das selbe Datenbank-File zu.
Das ist eine 1:1 Kopie des Ordners, auf den Eclipse zugreift, da diese Version bei uns nicht Standardmäßig installiert ist und deshalb mit verteilt werden soll.
Ich habe auch schon versucht, es aus dem Verzeichnis heraus zu starten, welches Eclipse nutzt und die beiden Ordner auch verglichen. Fehlermeldung und Ordnerinhalt sind identisch.
Ich experimentiere jetzt schon geraume Zeit mit verschiedenen build-Einstellungen, Library-Reihenfolgen und so weiter herum, habe auch schon versucht, ein buildfile dafür zu erstellen mit explizit zugewiesenem classpath und so weiter, aber ich bekomme immer wieder diese Fehlermeldung.
Auch wenn ich vermute, daß der Programmcode selber hier nicht das Problem ist, hier ein Beispiel für die Programmierung des Datenbankzugriffs:
public static String[] DB_ReadProjektmanager() {
ArrayList<String> alResult = new ArrayList<String>();
try {
Connection conn=DriverManager.getConnection(
"jdbc:ucanaccess://C:\\KAPA_PxF\\DB\\KAPA_DB.accdb");
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT [prj_man_name] FROM [V_Projektmanager]");
while (rs.next()) {
alResult.add(rs.getString(1));
}
}
catch (Exception ex) {
JOptionPane.showMessageDialog(null,"Datenbankfehler:"+ex.getMessage());
}
String[] aResult = new String[1];
aResult = alResult.toArray(aResult);
return aResult;
}
Ich habe übrigens auch schon versucht, statt Backslash den Slash zu benutzen, das hat keinen Unterschied gemacht.
Ich hoffe, daß mir irgendjemand helfen kann.
Gruß
Andreas