# Ubuntu 9.04 jdbc connector wird nicht gefunden



## neocrom (30. Jun 2009)

Hey Leute,
Ich bin ein wenig verzweifelt da mein QC:

```
package neocrom;

import java.sql.*;
import java.util.Properties;

public class DBDemo
{
  // The JDBC Connector Class.
  private static final String dbClassName = "com.mysql.jdbc.Driver";

  // Connection string. emotherearth is the database the program
  // is connecting to. You can include user and password after this
  // by adding (say) ?user=paulr&password=paulr. Not recommended!

  private static final String CONNECTION =
                          "jdbc:mysql://127.0.0.1/projects";

  public static void main(String[] args) throws
                             ClassNotFoundException,SQLException
  {
    System.out.println(dbClassName);
    // Class.forName(xxx) loads the jdbc classes and
    // creates a drivermanager class factory
    Class.forName(dbClassName);

    // Properties for user and password. Here the user and password are both 'paulr'
    Properties p = new Properties();
    p.put("user","neocrom");
    p.put("password","********");

    // Now try to connect
    Connection c = DriverManager.getConnection(CONNECTION,p);

    System.out.println("It works !");
    c.close();
    }
}
```

immer noch folgenden Fehler wirft:

```
Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
	at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:186)
	at neocrom.DBDemo.main(DBDemo.java:24)
com.mysql.jdbc.Driver
```

ich bin zuerst nach diesem Tutorial vorgegangen:
https://help.ubuntu.com/community/JDBCAndMySQL

... 

Als das nicht geklappt hab hab ich versucht diesen Treiber zu installieren:
MySQL :: Download Connector/J 5.1
sodass mein class path mittlerweile so aussieht:

```
neocrom@neocrom-desktop:~/JDBC/mysql-connector-java-5.1.7$ echo $CLASSPATH
/home/neocrom/JDBC/mysql-connector-java-5.1.7/mysql-connector-java-5.1.7-bin.jar::/usr/share/java/mysql.jar
```


so also hab ich mal nach geschaut via Terminal:

```
neocrom@neocrom-desktop:~/JDBC/mysql-connector-java-5.1.7$ ls /usr/share/java |grep mysql-connector
mysql-connector-java-5.1.6.jar
mysql-connector-java-5.1.7-bin.jar
mysql-connector-java.jar
```

eig. sind ja die richtigen Dateien vorhanden oder?

Wo liegt das problem?

aso hier noch ein beweis:
*MYSQLSERVER:*

```
neocrom@neocrom-desktop:~/JDBC/mysql-connector-java-5.1.7$ sudo apt-get install mysql-server
[sudo] password for neocrom: 
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut       
Lese Status-Informationen ein... Fertig
mysql-server ist schon die neueste Version.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
neocrom@neocrom-desktop:~/JDBC/mysql-connector-java-5.1.7$
```

*Mysql-client:*

```
neocrom@neocrom-desktop:~$ sudo apt-get install mysql-client
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut       
Lese Status-Informationen ein... Fertig
mysql-client ist schon die neueste Version.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
neocrom@neocrom-desktop:~$
```

*Libmysql-java:*

```
neocrom@neocrom-desktop:~$ sudo apt-get install libmysql-java
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut       
Lese Status-Informationen ein... Fertig
libmysql-java ist schon die neueste Version.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
neocrom@neocrom-desktop:~$
```


So <-- RATLOS hier

als IDE verwende ich Eclipse allerdings sollte dies ja nichts mit meinem Problem zutun haben


----------



## SlaterB (30. Jun 2009)

> als IDE verwende ich Eclipse allerdings sollte dies ja nichts mit meinem Problem zutun haben 

na aber hallo,
Eclipse ignoriert Umgebungsvariablen wie CLASSPATH,
Libraries müssen dort per Project Properties > Java Build Path > Libraries > Add External Jar hinzugefügt werden


----------



## neocrom (30. Jun 2009)

Aso Ok muss ich das dann für jedes Projekt immer neu machen?

werde das gleich testen obs funktioniert ...


und das ganze arbeitet ja dann mit dem Treiber wenn ich aber ein Applett mache und das z.b. auf FUnpic hochlade dann liegt auf dem Server ja leider nicht der Treiber wie kriege ich es hin das dass Applet trozdem funktioniert?


```
com.mysql.jdbc.Driver
It works !
```

Nicht schlecht! Danke schonmal jetzt funktionierts =) aber die 2 Fragen wüsste ich trozdem gerne noch


----------



## SlaterB (30. Jun 2009)

zu Applets kann ich nix sagen, 

da du jedes Eclipse-Projekt eh mit einem Mausklick manuell erstellen musst, ist es auch nicht zuviel verlangt, da jedesmal den ClassPath zu konfigurieren 
vielleicht kann man Eclipse sagen, dass es auf die Umgebungsvariable zugreifen soll,
vielleicht auch in einer der beiden Varianten eine Grundkonfiguration für neue Projekte hinterlegen, 
dazu weiß ich dann aber wieder auch nix genaueres


----------



## neocrom (30. Jun 2009)

ok danke dir trozdem schonmal vlt. weiß ja noch einer der anderen User dazu etwas...


Also damit man das nicht bei jedem Projekt neu machen muss kann man

unter Window->Preferences-> Java->Installed JREs ->[Deine Auswählen]OpenJDK->add external jar

das funktioniert auch prima

nun nur ncoh die Frage mit dem Applet

ich weiß das der Treiber bei einer JAR z.b. direkt in das Archiv hinzugefügt würde wie schaut das bei einem Applet aus?


----------



## JohannisderKaeufer (30. Jun 2009)

SlaterB hat gesagt.:


> zu Applets kann ich nix sagen,
> 
> da du jedes Eclipse-Projekt eh mit einem Mausklick manuell erstellen musst, ist es auch nicht zuviel verlangt, da jedesmal den ClassPath zu konfigurieren
> vielleicht kann man Eclipse sagen, dass es auf die Umgebungsvariable zugreifen soll,
> ...



Was auch geht ist ein Projekt anlegen in das man alle benötigten Libs reinhaut. Also LibProject.

Möchte man nun ein neues Projekt anlegen so kann man dieses LibProject referenzieren und bekommt alle Libs die man für nötig hält.


----------

