Je reçois l'exception Java.lang.ClassNotFoundException
lorsque j'essaie d'exécuter mon code,
Mon code
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/simple",
"root","root");
Statement stmt=con.createStatement();
String query="SELECT * FROM CUST";
ResultSet rs=stmt.executeQuery(query);
while(rs.next())
{
System.out.print(rs.getString("CUST_NAME") +" ");
System.out.print(rs.getString(2) +" ");
System.out.print(rs.getString(3) +" ");
}
rs.close();
stmt.close();
con.close();
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
catch (SQLException e)
{
e.printStackTrace();
}
Je reçois une erreur
Java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at Java.net.URLClassLoader$1.run(URLClassLoader.Java:200)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:188)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:307)
at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:301)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:252)
at Java.lang.ClassLoader.loadClassInternal(ClassLoader.Java:320)
at Java.lang.Class.forName0(Native Method)
at Java.lang.Class.forName(Class.Java:169)
at Simple.MyProg.main(MyProg.Java:15)
Qu'est-ce que je fais mal?
le problème n’est pas dans le code, mais vous n’avez pas ajouté le pilote à votre projet !!! Vous devez ajouter le pilote *.jar
à votre projet ...
Essayez de mettre ceci dans votre répertoire lib, puis redémarrez Tomcat ...
problème est Class.forName("com.mysql.jdbc.Driver");
il essaie de charger le pilote, mais il ne l’obtient pas, c’est la raison pour laquelle vous obtenez:
Java.lang.ClassNotFoundException.
Copié le fichier * .jar dans mon dossier WEB-INF/lib -> Fonctionne pour moi. Lors de l'inclusion de overpathpath, il y avait à chaque fois cette erreur.
Le problème est lié à MySql Driver
Class.forName("com.mysql.jdbc.Driver");
Ajoutez le fichier jar du pilote MySQL jdbc dans votre chemin de classe.
J'ai aussi cette erreur sur JDK. Je construis le ClassPath correctement puis je mets le "mysql-connector-Java-5.1.25-bin" dans le répertoire "C:\Program Files\Java\jre7\lib\ext" dans ce répertoire, j'ai mon JDK. puis compiler et exécuter à nouveau, alors cela fonctionne bien.
Vous pouvez télécharger le dernier fichier jar du pilote mysql depuis le chemin ci-dessous et le copier sur votre chemin de classe ou, si vous utilisez un serveur Web, le copier dans le dossier Tomcat/lib ou war/web-inf/lib.
Inclure le chemin de jar (pilote jdbc) dans classpath.
Notez que le nom de la classe Driver dans le fichier jar mySQL v8 (au moment de l'écriture de mysql-connector-Java-8.0.12.jar) a été remplacé par com.mysql.cj.jdbc.Driver
au fichier META-INF/services/Java.sql.Driver
.
s'il s'agit d'un programme autonome, téléchargez le fichier jar de connecteur mysql et ajoutez-le à votre chemin de classe.
s'il s'agit d'un projet maven, ajoutez la dépendance ci-dessous et lancez votre programme.
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-Java</artifactId>
<version>5.1.37</version>
</dependency>
Si vous obtenez cette erreur lorsque vous l'exécutez, c'est probablement parce que vous n'avez pas inclus le fichier JAR mysql-connector dans le dossier lib de votre serveur Web.
Maintenant, il est important d’ajouter mysql-connector-Java-5.1.25-bin.jar à votre chemin de classe et au répertoire lib de votre serveur Web. Tomcat lib path est donné à titre d'exemple Tomcat 6.0\lib
Si vous utilisez un ide Eclipse, téléchargez le fichier jar du connecteur mysql jdbc et pointez ce fichier dans le chemin de construction. Chemin de construction Java du projet -> Bibliothèques -> Ajouter des fichiers jar externes . Le connecteur peut être obtenu à partir de http://dev.mysql.com/downloads/connector/j/
J'ai eu
runtime('mysql:mysql-connector-Java')
Changé en
compile('mysql:mysql-connector-Java')
Résolu mon problème