# Zugriff auf Datenbank nach Erstellen einer Executable Jar Datei verweigert



## ITrun90 (6. Jul 2011)

Hey,

hier mal mein code:


```
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?


----------



## nrg (6. Jul 2011)

Exception??

Vermutlich hast du den Treiber nicht dem ClassPath hinzugefügt (MANIFEST.MF) aber das ist eher geraten..


----------



## ITrun90 (6. Jul 2011)

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


----------



## nrg (6. Jul 2011)

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

```
|- [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:

```
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 
	
	
	
	





```
.
```
 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.


----------



## bimmelbommelbob (28. Aug 2011)

konnte dir geholfen werden? sag doch mal bitte deine lösung des problems falls du sie hast.

danke


----------



## ITrun90 (28. Aug 2011)

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.


----------



## bimmelbommelbob (28. Aug 2011)

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ß


----------



## ITrun90 (28. Aug 2011)

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...


----------



## bimmelbommelbob (28. Aug 2011)

habe ich versucht. selbes resultat.


----------



## ITrun90 (28. Aug 2011)

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^^


----------



## bimmelbommelbob (28. Aug 2011)

ok danke.


----------

