Je reçois l'erreur suivante lorsque je tente de lancer un programme simple Java JDBC à la ligne de commande:ClassNotFoundException lors de la connexion à MySql avec JDBC
Exception in thread "main" java.lang.NoClassDefFoundError: LoadDriver/java
Caused by: java.lang.ClassNotFoundException: LoadDriver.java
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:315)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:330)
at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:398)
Voici le programme Java simple, copié à droite de la docs JDBC:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
// Notice, do not import com.mysql.jdbc.*
// or you will have problems!
public class LoadDriver {
public static void main(String[] args) {
try {
// The newInstance() call is a work around for some
// broken Java implementations
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (Exception ex) {
throw ex;
// handle the error
}
}
}
problème est, je suis sûr que mon sang shell bash variable $ CLASSPATH est pointé sur le fichier .jar correct. Pour être sûr, je copiais le JDBC .jar dans le même répertoire que mon programme et il a couru comme suit:
java -classpath ./mysql-connector-java-5.1.12-bin.jar LoadDriver.java
Je reçois toujours la même erreur.
Edit:
j'ai suivi la suggestion de Powerlord ci-dessous, et maintenant je reçois toujours à peu près la même exception.
je suis entré:
javac -classpath ./mysql-connector-java-5.1.12-bin.jar LoadDriver.java
java LoadDriver
si je laisse le drapeau classpath sur la deuxième commande ne semble pas à la matière. Je reçois encore:
Exception in thread "main" java.lang.NoClassDefFoundError: LoadDriver
Caused by: java.lang.ClassNotFoundException: LoadDriver
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:315)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:330)
at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:398)
erreur CLASSPATH? Vraiment? :( – Bombe