MySQL Problem mit MySQL verbindung

  • Themenstarter Themenstarter Gelöschtes Mitglied 58428
  • Beginndatum Beginndatum
G

Gelöschtes Mitglied 58428

Gast
Hallo,

ich habe einen Minecraft Client mit dem Mod Coder Pack erstellt. Dieser braucht eine MySQL Verbindung, die auch einwandfrei funktioniert, wenn ich den Client über Eclipse ausführe. Wenn ich aber den Client exportiere und über den Minecraft Launcher ausführe, dann bekomme ich diesen Fehler:

Java:
14:38:14 game java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
14:38:14 game at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
14:38:14 game at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
14:38:14 game at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
14:38:14 game at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
14:38:14 game at java.lang.Class.forName0(Native Method)
14:38:14 game at java.lang.Class.forName(Class.java:264)
14:38:14 game at de.keks.client.main.MySQL.Connect(MySQL.java:22)
14:38:14 game at de.keks.client.main.MysteryClient.onCommand(MysteryClient.java:143)
14:38:14 game at net.minecraft.client.gui.GuiChat.keyTyped(GuiChat.java:137)
14:38:14 game at net.minecraft.client.gui.GuiScreen.handleKeyboardInput(GuiScreen.java:625)
14:38:14 game at net.minecraft.client.gui.GuiScreen.handleInput(GuiScreen.java:576)
14:38:14 game at net.minecraft.client.Minecraft.runTick(Minecraft.java:1775)
14:38:14 game at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1101)
14:38:14 game at net.minecraft.client.Minecraft.run(Minecraft.java:421)
14:38:14 game at net.minecraft.client.main.Main.main(Main.java:113)
14:38:14 game java.sql.SQLException: No suitable driver found for jdbc:mysql://db4free.net:3306/hwidlogin
14:38:14 game at java.sql.DriverManager.getConnection(DriverManager.java:689)
14:38:14 game at java.sql.DriverManager.getConnection(DriverManager.java:247)
14:38:14 game at de.keks.client.main.MySQL.Connect(MySQL.java:33)
14:38:14 game at de.keks.client.main.MysteryClient.onCommand(MysteryClient.java:143)
14:38:14 game at net.minecraft.client.gui.GuiChat.keyTyped(GuiChat.java:137)
14:38:14 game at net.minecraft.client.gui.GuiScreen.handleKeyboardInput(GuiScreen.java:625)
14:38:14 game at net.minecraft.client.gui.GuiScreen.handleInput(GuiScreen.java:576)
14:38:14 game at net.minecraft.client.Minecraft.runTick(Minecraft.java:1775)
14:38:14 game at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1101)
14:38:14 game at net.minecraft.client.Minecraft.run(Minecraft.java:421)
14:38:14 game at net.minecraft.client.main.Main.main(Main.java:113)
Wie kann ich diesen Fehler beheben?
Die MySQLConntector.jar habe ich auch im buildpath hinzugefügt.

Meine MySQL Class sieht so aus:

Java:
public class MySQL {
 
 public static String host = "db4free.net";
 public static String port = "3306";
 public static String database = "geheim";
 public static String username = "geheim";
 public static String password = "geheim";
 public static Connection con;
 
 public static void Connect() {
  if(!isConnected()) {
   try {
    try {
     Class.forName("com.mysql.jdbc.Driver ").newInstance();
    } catch (InstantiationException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    } catch (IllegalAccessException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    } catch (ClassNotFoundException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
    con = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database,username,password);
    System.out.println("[MySQL] Verbindung erfolgreich aufgebaut!");
   } catch (SQLException e) {
    MysteryClient.sendMessage(Messages.conn_failed);
    e.printStackTrace();
   }
  }
 
 }
 public static void Disonnect() {
  if(isConnected()) {
   try {
    con.close();
    System.out.println("[MySQL] Verbindung wurde getrennt.");
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
 
 }
 public static boolean isConnected() {
  return(con == null ? false : true);
 
 
 }
 public static Connection getConnection() {
  return con;
 
 }
 
}

Ich hoffe jemand kann mir helfen.

LG
 
Zuletzt bearbeitet von einem Moderator:
Der Klassenname sollte nicht auf ein Leerzeichen enden: "com.mysql.jdbc.Driver ".

Das Class.forName ist allerdings auch überflüssig (und das newInstance erst Recht), das kann raus.
 
Java:
java.sql.SQLException: No suitable driver found for jdbc:mysql://db4free.net:3306/geheim 
10:53:01 game at java.sql.DriverManager.getConnection(DriverManager.java:689)
10:53:01 game at java.sql.DriverManager.getConnection(DriverManager.java:247)
10:53:01 game at de.keks.client.main.MySQL.Connect(MySQL.java:21)
10:53:01 game at de.keks.client.main.MysteryClient.onCommand(MysteryClient.java:181)
10:53:01 game at net.minecraft.client.gui.GuiChat.keyTyped(GuiChat.java:137)
10:53:01 game at net.minecraft.client.gui.GuiScreen.handleKeyboardInput(GuiScreen.java:625)
10:53:01 game at net.minecraft.client.gui.GuiScreen.handleInput(GuiScreen.java:576)
10:53:01 game at net.minecraft.client.Minecraft.runTick(Minecraft.java:1775)
10:53:01 game at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1101)
10:53:01 game at net.minecraft.client.Minecraft.run(Minecraft.java:421)
10:53:01 game at net.minecraft.client.main.Main.main(Main.java:113)
 
Es ist eig. ganz einfach:
Der MySQL Treiber fehlt!

Folglich liegt die entsprechende JAR nicht im Classpath. Das zeigt auch das Verhalten, dass es in Eclipse funktioniert und im Minecraft Client nicht. Die beiden haben anscheinend unterschiedliche Classpath Pfade. Am einfachsten ist es wahrscheinlich in deinem Fall den MySQL Treiber einfach mit ins Plugin zu integrieren und eine jar-with-dependencies zu erzeugen. Oder du schaust nach, wo der Client nach seinen .jar Dateien sucht (z.B. im /lib Ordner).
 

Zurück
Oben