Hi Ihr hoffentlich Helfende
Verwende Eclipse Indigo, Java Version: 1.7.0_25
In meinen Workspace habe ich eine H2 DB eingebettet, zu welcher bei Start der Desktop Applikation aus Eclipse heraus,
die Verbindung hergestellt wird und bearbeitet werden kann.
Die Struktur im Workspace habe ich als Bild hinzugefügt.
Da dies ein recht großes Ding ist, habe ich alle unnotwendigen Packages ausgeschnitten.
Nun zum Problem:
Wie Eingangs erwähnt, wird die Verbindung zur H2 DB aus Eclipse heraus einwandfrei hergestellt.
Dies geschieht über die DBData.java
Den Pfad gebe ich wie folgt an:
Verarbeitet werden diese Daten in der DBConnect.java
Wenn ich aber nun dieses Projekt als .jar exportiere (das funktioniert ohne Fehlermeldung) und - weil dieses ausschliesslich auf Windows - Rechnern läuft - mit Launch4J
eine .exe generiert wird, habe ich keine Verbindung zur H2 - DB mehr.
Folgender Fehlermeldung werde ich angesichtig:
Ein Blick in die EigeneGriffe.java zeigt, dass die Verbindung zur DB nicht geklappt hat.
Tja...soweit habe ich hoffentlich alles Notwendige vermerkt...
Nun die Frage nch dem "Warum"....warum keine Verbindung?
Ich hoffe, dass sich jemand findet, der mir hier weiterhelfen kann
Danke schon mal im Voraus
Verwende Eclipse Indigo, Java Version: 1.7.0_25
In meinen Workspace habe ich eine H2 DB eingebettet, zu welcher bei Start der Desktop Applikation aus Eclipse heraus,
die Verbindung hergestellt wird und bearbeitet werden kann.
Die Struktur im Workspace habe ich als Bild hinzugefügt.
Da dies ein recht großes Ding ist, habe ich alle unnotwendigen Packages ausgeschnitten.
Nun zum Problem:
Wie Eingangs erwähnt, wird die Verbindung zur H2 DB aus Eclipse heraus einwandfrei hergestellt.
Dies geschieht über die DBData.java
Den Pfad gebe ich wie folgt an:
Java:
final static String sep = System.getProperty("file.separator");
public static String dir = System.getProperty("user.dir");
public static final String URL = "jdbc:h2:" + dir + sep + "h2" + sep + "bin"
+ sep + "homeDerDb" + sep + "lib" + sep + "h2" + sep + "bin;IGNORECASE=TRUE;CIPHER=AES";
public static final String DRIVER = "org.h2.Driver";
public static final String USER = "xxx";
public static final String PWDS = "xxx";
public static Connection connection;
Verarbeitet werden diese Daten in der DBConnect.java
Java:
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnect {
/**
* Die Klasse DBConnect laedt den Treiber und
* verbindet zur Datenbank H2.
*/
public static void connect() {
// Treiber laden
try {
Class.forName(DBData.DRIVER).newInstance();
} catch (Exception ex) {
System.out.println("Der JDBC-Treiber konnte nicht geladen werden.");
return;
}
// Verbindung herstellen
try {
DBData.connection = DriverManager.getConnection(DBData.URL, DBData.USER, DBData.PWDS);
} catch (SQLException ex) {
System.out.println("Verbindung failed: " + DBData.URL);
System.out.println("Die Verbindung zur Datenbank konnte nicht hergestellt werden. "
+ "Die Fehlermeldung lautet: " + ex.getMessage());
return;
}
}
}
Wenn ich aber nun dieses Projekt als .jar exportiere (das funktioniert ohne Fehlermeldung) und - weil dieses ausschliesslich auf Windows - Rechnern läuft - mit Launch4J
eine .exe generiert wird, habe ich keine Verbindung zur H2 - DB mehr.
Folgender Fehlermeldung werde ich angesichtig:
Code:
Executing: C:\Users\Home(PC)\Desktop\Berechnungssoftware\app.exe
java.lang.NullPointerException
at at.Projektordner.main.cards.EigeneGriffe.findGriffeEigene(EigeneGriffe.java:1227)
at at.Projektordner.main.cards.EigeneGriffe.getTblGriffeEigene(EigeneGriffe.java:794)
at at.Projektordner.main.cards.EigeneGriffe.setTblGriffeEigene(EigeneGriffe.java:803)
at at.Projektordner.main.cards.EigeneGriffe.<init>(EigeneGriffe.java:748)
at at.Projektordner.main.ApplicationStart.initGUI(ApplicationStart.java:195)
at at.Projektordner.main.ApplicationStart.<init>(ApplicationStart.java:133)
at at.Projektordner.main.ApplicationStart.createAndShowGui(ApplicationStart.java:353)
at at.Projektordner.main.ApplicationStart$1.run(ApplicationStart.java:126)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Ein Blick in die EigeneGriffe.java zeigt, dass die Verbindung zur DB nicht geklappt hat.
Java:
try {
DBConnect.connect();
Statement stmt;
stmt = DBData.connection.createStatement(); // <-- hier wird die Fehlermeldung ausgelöst
// --- weiterer Code
Tja...soweit habe ich hoffentlich alles Notwendige vermerkt...
Nun die Frage nch dem "Warum"....warum keine Verbindung?
Ich hoffe, dass sich jemand findet, der mir hier weiterhelfen kann
Danke schon mal im Voraus
Anhänge
Zuletzt bearbeitet: