Zugriff auf Datenbank nach Erstellen einer Executable Jar Datei verweigert

ITrun90

Mitglied
Hey,

hier mal mein code:

Java:
public class Verbindung {
    public Verbindung(){
        
    }
    
    public static Connection driver(){
        Connection conn = null;
        
        try{
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            
            String url = "jdbc:mysql://109.230.210.3/usr_web125_2";
            
            conn = DriverManager.getConnection(url,"username", "passwort");
            
            
        }catch(Exception e){
            System.out.println(e.toString());
            System.out.println("Error: Connection");
        }
        
        return conn;
        
        
    }
}

Der Server der dort angegeben ist, ist mein Webspace (Externer Zugriff wird zugelassen)

In meinem Netbeans klappt alles wunderbar, kann auf die Datenbank zugreifen, reinschreiben, auslesen alles. Nachdem ich aber eine Executable Jar Datei daraus gemacht habe klappt das nicht mehr, woran kann das liegen?
 
Exception??

Vermutlich hast du den Treiber nicht dem ClassPath hinzugefügt (MANIFEST.MF) aber das ist eher geraten..
 
Das klingt logisch, weil es eben in Netbeans ja einwandfrei funktioniert. Wie könnte ich das denn machen? Der Treiber ist unter den Libraries -> jdk 1.6 -> mysql-connector-java-5.0.4-bin.jar -> com.mysql.jdbc ->driver.class
 
Exception hast du immernoch nicht gesagt aber ich denke mal, dass es eine ClassNotFound ist. Das gleiche Problem hat übrigens der Kollege einen Thread unter dir 🙂

angenommen du hast folgende Verzeichnisstruktur
Code:
|- [lib]
|     '- mysql-connector-java-5.0.4-bin.jar
|- deineJarDatei.jar

also im gleichen Ordner wie deineJarDatei liegt ein Order lib worin dein Treiber mysql-connector-java-5.0.4-bin.jar ist.

Dann öffnest du die JAR-Datei mit WinRAR o.ä. und öffnest die MANIFEST.MF (META-INF/MANIFEST.MF)
Dort dann die Zeile Class-Path anpassen:
Code:
Manifest-Version: 1.0
Class-Path: lib/mysql-connector-java-5.0.4-bin.jar .
Main-Class: DeineMain
Die Leerzeile am Ende nicht vergessen und den
Code:
 .
nach dem Treiber behalten.

Dann sollte das funktionieren 🙂. wie gesagt, kenne immernoch nicht die eigentliche Fehlermeldung...

Additional kannst du das natürlich in deinen Build Prozess automatisieren.
 
Jo habs hinbekommen, man musste den Treiber für die Kommunikation mit der Datenbank manuell in den Ordner kopieren, wo auch die JAR datei liegt.
 
danke für deine antwort,
daran liegts bei mir leider nicht.
die manifest.mf ist in ordnung.

welchen anderen thread meinte nrg? weißt du das?
vieleicht werde ich dort fündig.

gruß
 
Meinte auch nicht die Manifest - Datei. Wenn du mit Datenbanken arbeitest, dann haste halt eine "Bibliothek" in dem Fall den Treiber, welcher es möglich macht, dass dein Programm mit der Datenbank kommuniziert. Dieser Treiber ist eine richtige Datei, die man runtergeladen hat zusammen mit der Datenbank. Diese Datei musst du mit STRG + C kopieren und dann dort einfügen, wo auch deine .jar datei liegt...
 
Mhm, ich glaube ich habe es auch damals nen kleines bisschen anders gemacht. Im Prinzip das gleiche Schema aber in Netbeans selber konnte man das einstellen, wo die Datei liegt, dann hat Netbeans diese Datei automatisch in die .jar gepackt. Aber frag mich bitte nicht wo diese Einstellung zu machen war^^
 

Zurück
Oben