MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht?

platofan23

Mitglied
Hallo Leute

Ich habe einen Java Server auf einem Debian 9 System laufen.
Der Server startet aber wenn ich über Java, um zum beispiel etwas in die Datenbank zu schreiben, auf mein MySQL-Server zugreifen will,
bekomme ich diese Fehlermeldung.

Fehlermeldung:

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

Kann Java keine Verbindug zu MySQL herstellen, weil es die Connector.jar nicht findet oder ist es ein anderer Fehler.
Wenn es den Connector nicht findet in welchen Ordener muss der dann rein oder wie kann man den in die Datei mit eingleidern?

Ps. Auf dem localhost in Blue J läuft alles. Habe einen xampp laufen und es schreibt alles korrekt in die Datenbank.
Allerdings muss man bei Blue J den Connector in die libaries importieren wie geht das bei meinem Debain 9 System?

Grüße
 
Ja, das .jar-File mit dem JDBC-Treiber muss im Classpath des Programms vorhanden sein, das die Verbindung herstellen möchte.

BlueJ kenne ich nicht, aber die dafür um so besser: https://www.bluej.org/faq.html#faq_How_do_I_use_custom_class_libraries__JARs__

ich will das nicht im blue j laufen lassen, sondern auf einem gemieteten linux debian system. Dort hab jre und jdk installiert und will den server über java laufen lassen. auch die datenbank läuft dort. nun compilieren geht, aber beim ausführen und zugriffsversuch wird der datenbanktreiber nicht gefunden...
 
Gut, dann machst Du java -cp /path/zur/connector.jar:. Klassenname

Nachtrag zur Erklärung: mit -cp gibt man den Class-Path an. Der besteht aus einer oder mehreren Pfadangaben, die von Java verwendet werden, um Klassen zu laden. In dem Beispiel ist das einmal die connector.jar und einmal das aktuelle Verzeichnis. Unter Unixoiden werden die Pfade durch einen Doppelpunkt voneinander getrennt, unter Windows wird stattdessen ein Semikolon verwendet.
 
Gut, dann machst Du java -cp /path/zur/connector.jar:. Klassenname

Nachtrag zur Erklärung: mit -cp gibt man den Class-Path an. Der besteht aus einer oder mehreren Pfadangaben, die von Java verwendet werden, um Klassen zu laden. In dem Beispiel ist das einmal die connector.jar und einmal das aktuelle Verzeichnis. Unter Unixoiden werden die Pfade durch einen Doppelpunkt voneinander getrennt, unter Windows wird stattdessen ein Semikolon verwendet.
und das erweitert jetzt den classpath für die fehlende jar datei? oder kann ich mal pfad und classpath aktuell reinlegen reinlegen und die schreibst mir den befehl dazu?
 
Wie rufst Du denn den Server auf?

das problem ist die verbindung mit der datenbank ist in einer klasse ohne main methode...

also ich hab 4 klassen eine Klasse dbconnect mit der ich mich auf die datenbank verbinde
eine klasse jolas_login für die funktion der methoden
und eine server klasse die ich dann starte
dbconnect habe ich mit "-classpath/pfad/usw/" javac compiliert und den rest normal. dann hab ich noch den server server.java gestartet über putty
 
Deiner Beschreibung nach hast Du keine Packages sondern einfach vier .java-Dateien, die alle im gleichen Verzeichnis liegen.

Die hast Du kompiliert, so dass sich im gleichen Verzeichnis jetzt auch die .class-Dateien befinden, richtig?

Dann rufst Du auf:
java -cp /path/zur/connetor.jar:/path/zu/deinen/class-files Klassenname

Wobei Klassenname der Name der Klasse ist, die die main-Methode enthält.
 
Deiner Beschreibung nach hast Du keine Packages sondern einfach vier .java-Dateien, die alle im gleichen Verzeichnis liegen.

Die hast Du kompiliert, so dass sich im gleichen Verzeichnis jetzt auch die .class-Dateien befinden, richtig?

Dann rufst Du auf:
java -cp /path/zur/connetor.jar:/path/zu/deinen/class-files Klassenname

Wobei Klassenname der Name der Klasse ist, die die main-Methode enthält.

mega fettes danke es funktioniert endlich 🙂🙂🙂🙂🙂
 

Zurück
Oben