SwordMaster Geschrieben 3. September 2003 Geschrieben 3. September 2003 Hoffe ihr könnt mir helfen.... Ich müßte ein java programm schreiben dass unter linux auf eine mysql datenbank zugreifen..... soviel ich weiß muß dass ohne odbc auch gehen (wenn es odbc in linux überhaupt giebt?! ) Kann mir jemand helfen?? Wäre echt super! Danke SwordMaster Zitieren
Peeter Geschrieben 3. September 2003 Geschrieben 3. September 2003 Also als erstes brauchst du eine funktionierende MySQL-Datenbank! Dann brauchst du den Treiber den du hier findest. Und dann musst du nur noch das ganze in dein Java-Programm einbinden. Treiber laden: Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection aufbauen: connection_MySQL = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/Datenbank?user=username&password=Password"); Dannnur noch deine Statements und fertig ist der Zugriff auf die MySQL!! Zitieren
SwordMaster Geschrieben 3. September 2003 Autor Geschrieben 3. September 2003 Hab mir jetzt mysql-connector-java-3.0.8-sable.zip runtergeladen (hoff dass ist das richtige....) nur in der zip datei sind sehr sehr sehr viele java und class dateien.... was mußt ich mit denen machen?!?!? muß ich die auch in mein programm einbinden?!?! wenn ja wie?! sorry java ist nicht so meine stärke *G* udn linux schon gar nicht Danke für eure hilfe! SwordMaster Zitieren
Jaraz Geschrieben 3. September 2003 Geschrieben 3. September 2003 Original geschrieben von SwordMaster mysql-connector-java-3.0.8-sable.zip Auszug aus README Datei eben dieser oben genannten Zip Datei. Put mysql-connector-java-3.0.7-stable-bin.jar in your classpath, either by adding the FULL path to it to your CLASSPATH enviornment variable, or putting it in $JAVA_HOME/jre/lib/ext. Das weitere Vorgehen steht ebenfalls in der README Gruß Jaraz Zitieren
Peeter Geschrieben 3. September 2003 Geschrieben 3. September 2003 Folgendermaßen. In dieser Zip ist eine Datei namens: "mysql-connector-java-3.0.8-stable-bin.jar". Erst mal entpacken. Diese benennst du am besten gleich mal in was kürzeres um (z.B. "mysql-driver.jar"). Dann brauchst du nur noch das Programm mit dem Parameter -classpath zu übersetzen: "javac -classpath .;laufwerk:\PfadZurJar\mysql-driver.jar Programm.java" Und genauso führst du dein Programm auch aus: "java -classpath .;laufwerk:\PfadZurJar\mysql-driver.jar Programm" Peet Zitieren
Peeter Geschrieben 3. September 2003 Geschrieben 3. September 2003 Oder so wie es Jaraz macht! Verdammt, wieder zu langsam. Zitieren
SwordMaster Geschrieben 8. September 2003 Autor Geschrieben 8. September 2003 Hallo leute bei windows hab ich die sache jetzt geschafft hab die *.zip datei entpackt.... dann die jar datei in den "ext"-Ordner von java kopiert (hab ich i nder Readme gelesen) und dann das programm ganz normal gestartet => hat funktioniert.... dann hab ich mir "mysql-connector-java-3.0.8-stable.tar.tar" datei runtergeladen (geh davon aus dass die für linux ist.... *.zip giebts ja in linux nicht oder?!? ) hab die dortenhaltene *.jar datei in den "ext" ordner auf der Linuxmaschine kopiert und wollte das programm dann starten.... Kompilieren kann ich es ohne probleme... aber ich bekomme folgende fehlermeldung java.lang.NullPointerException: at SwordsMySQLClass.doMyQuerys(OnlyMy at OnlyMySql.main(OnlyMySql.java:13) das komische ist dass ich die zeilen Class.forName("com.mysql.jdbc.Driver").newInstance(); con = DriverManager.getConnection("jdbc:mysql://192.168.40.173:3306/test"); schon im konstrukter der Datenbankklasse stehen habe.... also findet er den treiber dcoh oder?!??! sonst würde er die Exception schon im Konstruktor werfen... die doMyQuery führt nur eine selct anweisung aus:((( könnt ihr mir helfen??!?!?!? danke swordmaster Zitieren
Peeter Geschrieben 8. September 2003 Geschrieben 8. September 2003 Was machst du denn in dieser Methode genau? Also am besten den Quellcode der Zeile in der der Fehler auftritt. Peet Zitieren
SwordMaster Geschrieben 8. September 2003 Autor Geschrieben 8. September 2003 komisch Ich verstehs nicht *GGG* jetzt wollte ich die funktion kürzen weil sie sowieso zu lang für ein Testprogramm ist.... Jetzt habe ich nur Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection con = null; con = DriverManager.getConnection("jdbc:mysql://192.168.40.173:3306/test"); Statement stat = con.createStatement(); stat.execute("insert into test VALUES (9);"); und krieg jetzt eine ClassNotFoundException aber im windows hab ich doch auch nichts anderes gemacht als die *.jar datei in den Ext... ordner zu kopieren... und dann hats funktioniert.... order braucht die *.jar datei die anderen dateien die im zip archiv (das ich runtergeladen hab) sind auch noch?! sorry hoff ich stell mich nicht zu doof! Thx SwordMaster Zitieren
Peeter Geschrieben 8. September 2003 Geschrieben 8. September 2003 Eigentlich müsstest du die .jar Datei in deinen Classpath aufnehmen. Es reicht nicht, wenn du sie nur in diesen Ordner kopierst!! Das weißt du aber wie das geht?! Peet Zitieren
SwordMaster Geschrieben 8. September 2003 Autor Geschrieben 8. September 2003 ne sorry ehrlichgesagt nicht.... bin so gut wie noch nie vor linux gesessen... und jetzt hab ich nur shell (nix kde....) kannst mir trotzdem helfen?? Zitieren
Peeter Geschrieben 8. September 2003 Geschrieben 8. September 2003 Da ich nicht weiß wie man unter Linux den System-Classpath setzt muß ich dir anders helfen. Also du startest doch deine Klasse mit dem Aufruf von "java Klassenname"?! So, und jetzt setzt du einfach nur noch einen Parameter davor. "java -classpath /home/irgendwas/Pfad/mysql-driver.jar;. Klassenname" Achtung, vergess nicht den "." im Classpath da dieser auf das aktuelle Verzeichnis zeigt. Zitieren
SwordMaster Geschrieben 8. September 2003 Autor Geschrieben 8. September 2003 Ich werf diese linux kiste gleich so weit... dass ich sie gar nicht mehr seh.... *verzweifel* hab jetzt folgendes probiert(er soll ja nur Sql.java Starten) java -classpath \home\volkstef\java\SqlDriver.jar;. Sql ==>Als ergebniss bekam ich: "bash: Sql: No such file or directory" dann hab ich probiert(hab gedacht geb ich mal den ganzen pfad der Sql.java an): java -classpath \home\volkstef\java\SqlDriver.jar;. \home\volkstef\java\Sql ==>Als ergebniss bekam ich: bash: homevolkstefjavaSql: No such file or directory fragt mich nicht wieso der den "\" nicht versteht.... aus lauter verzweiflung hab ich probiert das ".java" beim java befehl mit anzugeben => funktioniert natürlich auch nicht wiel man das ja normal auch nicht macht..... Da solls doch leute geben die meinen Linux sei das bessere system..... :( :( Vielleicht hast ja noch nen geistesblitz?! Zitieren
Peeter Geschrieben 8. September 2003 Geschrieben 8. September 2003 ÄHM!! "/" != "\" Nimm anstatt "\" mal den "/"!! Linux nimmt den "\" nicht gern für Pfade! :mod: Zitieren
SwordMaster Geschrieben 8. September 2003 Autor Geschrieben 8. September 2003 tja... jetzt hab ichs so versucht (statt "/" ein "\") java -classpath /home/volkstef/java/SqlDriver.jar;. /home/volkstef/java/Sql => Ergebnis: bash: /home/volkstef/java/Sql: No such file or directory ist MIR schon klar dass es nur eine "Sql.java" giebt und keine "Sql"aber wieso ist das dem linux nicht klar..... :confused: :confused: :( :confused: :confused: P.S. java -classpath /home/volkstef/java/SqlDriver.jar;. Sql funktioniert natürlicha auch nicht Zitieren
Peeter Geschrieben 8. September 2003 Geschrieben 8. September 2003 Also folgendermaßen. Du wechselst in das Verzeichnis in dem die Sql.java liegt (und natürlich die Sql.class falls du keine Packages verwendet hast). "cd /home/volkstef/java" Und dann gibst du den Befehl ein: "java -classpath /home/volkstef/java/SqlDriver.jar;. Sql" Wobei ich mir mit dem "." nicht ganz sicher bin (ich kenn das von Windows her) Aber die Fehlermeldung kommt ja nur beim letzten Teil deines Aufrufs. Peet Zitieren
SwordMaster Geschrieben 8. September 2003 Autor Geschrieben 8. September 2003 das ist ja das komische! ICH WAR JA IMMER in dem verzeichniss wo die Sql.java udn Sql.class liegt!! bei: java -classpath /home/volkstef/java/SqlDriver.jar Sql => Ergeniss: "Unable to initialize threads: cannot find class java/lang/Thread" bei java -classpath /home/volkstef/java/SqlDriver.jar;. Sql => Ergebniss: bash: Sql: No such file or directory obwohl ich im Verzeichniss bin!! Übrigens habe ich vorhin im internet gelesen dass Linux die einzelnen pfade mit ":" und nicht mit ";" trennt also hab ichs mal so probiert java -classpath /home/volkstef/java/SqlDriver.jar:. Sql => Ergebniss: "Unable to initialize threads: cannot find class java/lang/Thread" kann es sein dass wenn ich mit parameter classpath arbeite die restlichen standartpfade die in classpath stehen für diesen aufruf nicht gelten und deshalb der fehler kommt?! Zitieren
Peeter Geschrieben 8. September 2003 Geschrieben 8. September 2003 java -classpath /home/volkstef/java/SqlDriver.jar:. Sql => Ergebniss: "Unable to initialize threads: cannot find class java/lang/Thread" kann es sein dass wenn ich mit parameter classpath arbeite die restlichen standartpfade die in classpath stehen für diesen aufruf nicht gelten und deshalb der fehler kommt?! Also das wäre eigentlich der richtige Aufruf. Die anderen Pfade die im System-Classpath stehen gelten deswegen noch weiterhin. Ich glaub da ist was bei der installation schief gelaufen. Findest du irgendwo auf deinem System die "rt.jar" (so um die 25MB groß)?? Müsste eigentlich irgendwo in dem Verzeichnis liegen in dem du dein Java SDK installiert hast. Die nimmst du noch in den Classpath auf. Dann weiß ich auch nicht weiter.:confused: Zitieren
SwordMaster Geschrieben 9. September 2003 Autor Geschrieben 9. September 2003 Nach langem suchen und stöbern hab ichs durch zufall gemerkt.... Es war ein alter java compiler (JDK 1.18) installiert.... der neue war zwar auf der platte... aber der alte wurde benutzt.... is echt doof gelaufen, da es nicht mein server war, und die neue java installation hab ich damals auch nicht gemacht.... Jetzt läuft der neue compiler und die Datenbank verbindung war auch nicht mehr schwer.... Danke für deine geduld! Ciao SwordMaster Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.