ubuntuusers.de

Java Mysql Problem

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

apfelkuechle

Anmeldungsdatum:
2. Dezember 2007

Beiträge: 8

Hallo,

habe mit Eclipse auf Mac OS X ein Consolenprogramm geschrieben, welches auf MySQL zugreift und dafür den MySQL Connector 5.0.8 benutzt. Dieser liegt in /Library/Java/Extention. Wenn ich auf meinem Mac das Programm mit java -jar programm.jar aufrufe, funktioniert alles prächtig.

Jetzt habe ich das jar auf einen kleinen Server mit Ubuntu Server 7.10 nach /opt/programm/bin kopiert und den MYSQL Connector nach /usr/share/java kopiert. Rufe ich jedoch jetzt das Programm mit java -jar programm.jar auf dem Server auf, bekomme ich folgende Fehlermeldung:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:hb-updd.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}

In $PATH steht
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:

In $CLASSPATH steht
/usr/share/java

Was mache ich falsch?

ditsch Team-Icon

Avatar von ditsch

Anmeldungsdatum:
13. November 2005

Beiträge: 12007

Wohnort: Schönbrunn

Hallo und willkommen bei ubuntuusers!

Wahrscheinlich benötigt der Connector die Java-Runtime von Sun.

apfelkuechle

(Themenstarter)

Anmeldungsdatum:
2. Dezember 2007

Beiträge: 8

Habe mysql-server sun-java5-jdk libmysql-java installiert. Gehe davon aus, dass ich das jre nicht extra installieren muss, oder?

Sind denn die Pfade richtig? Ist das das richtige Verzeichnis um Extentions abzulegen und welche Pfade muss ich in welcher Datei bekannt machen (JAVA_HOME, CLASSPATH,...)

Habe auch noch einen Tomcat5.5 installiert. Dieser lässt sich aufrufen, Java scheint also prinzipiell gefunden zu werden.

ditsch Team-Icon

Avatar von ditsch

Anmeldungsdatum:
13. November 2005

Beiträge: 12007

Wohnort: Schönbrunn

Wähl mal die Sun-JRE als Standard, dann sehen wir weiter.

apfelkuechle

(Themenstarter)

Anmeldungsdatum:
2. Dezember 2007

Beiträge: 8

Ok, habe das JDK mit apt-get remove sun-java5-jdk --purge removed und sun-java5-jre installiert, was aber mit einem "Ist schon installiert und aktuell" beendet wurde.

Hab mal die alternatives angeschaut:

lrwxrwxrwx 1 root root 34 2007-12-01 13:21 java → /usr/lib/jvm/java-gcj/jre/bin/java
lrwxrwxrwx 1 root root 31 2007-12-04 19:18 javac → /usr/lib/jvm/java-gcj/bin/javac

habe es gemäß der Beschreibung umgestellt und jetzt link alles auf

lrwxrwxrwx 1 root root 40 2007-12-04 20:11 java → /usr/lib/jvm/java-1.5.0-sun/jre/bin/java
lrwxrwxrwx 1 root root 31 2007-12-04 19:18 javac → /usr/lib/jvm/java-gcj/bin/javac

Die Fehlermeldung wenn ich das Programm ausführe fällt nun ein wenig kürzer aus:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

ditsch Team-Icon

Avatar von ditsch

Anmeldungsdatum:
13. November 2005

Beiträge: 12007

Wohnort: Schönbrunn

Schreib mal den kompletten Namen der jar inklusive Pfad in den Classpath.

apfelkuechle

(Themenstarter)

Anmeldungsdatum:
2. Dezember 2007

Beiträge: 8

Ob, habe den Server komplett neu installiert.

Ubuntu 7.10 Server Installation mit zusätzlichem Samba.
linux-generic wegen des alten Prozessors, sonst nur mysql-server, mysql-client und libmysql-java installiert.

Verzeichnis /opt/programm angelegt und programm.jar dort abgelegt.

mysql-connector-5.0.4.jar aus /usr/share/java nach /opt/programm kopiert

java .jar programm.jar
java -jar programm.jar -cp=.
java -jar programm.jar -cp=.:/usr/share/java
java -jar programm.jar -cp=.:/usr/share/java:./mysql-connector-java-5.0.4.jar

bringt alles die gleiche Fehlermeldung:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:hb-updd.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}

sun-java5-jre installiert

test von oben wiederholt ergebnis: gleiche fehlermeldung

mit sudo update-alternatives --config java auf von gcj auf jre umgestellt

test wiederholt

Fehlermeldung: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

apfelkuechle

(Themenstarter)

Anmeldungsdatum:
2. Dezember 2007

Beiträge: 8

Ich glaube ich mache etwas prinzipiell falsch.

Ich habe zum Testen mal einen Jungfäulichen 6.06.1 LTS Server aufgesetzt und sun-java6-jre installiert. Genau gleiches Verhalten.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17599

Wohnort: Berlin

Das funktioniert alles nicht:

java -jar programm.jar -cp=.
java -jar programm.jar -cp=.:/usr/share/java
java -jar programm.jar -cp=.:/usr/share/java:./mysql-connector-java-5.0.4.jar


Du kannst im jar-File einen Classpath definieren - andere derartige Versuche werden ignoriert.

Einfacher ist es, die benötigten zusätzlichen JARs nach $JAVA_HOME/jre/lib/ext zu packen, da werden sie dann automatisch gefunden.

Antworten |