#java #mysql #jdbc
#java #mysql #jdbc
Вопрос:
Я пытаюсь заставить свою Java-программу взаимодействовать с базой данных MySQL.
Итак, я немного почитал и скачал MySQL Connector / J. Я извлек его в свой домашний каталог ~. Вот содержимое.
user@hamster:~$ ls
LoadDriver.class LoadDriver.java mysql-connector-java-5.1.18-bin.jar
Содержимое LoadDriver.java являются
user@hamster:~$ cat LoadDriver.java
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) {
System.out.println(ex);
}
}
}
Содержимое такое же, как у http://dev.mysql.com/doc/refman/5.1/en/connector-j-usagenotes-basic.html#connector-j-usagenotes-connect-drivermanager с единственным изменением, что исключение выводится на консоль в блоке catch.
Я компилирую ее следующим образом
leonard@hamster:~$ javac LoadDriver.java
Когда я пытаюсь ее выполнить, результатом является следующее.
leonard@hamster:~$ java LoadDriver
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Этот вывод соответствует выполняемой команде, но при попытке запустить его с помощью предписанного метода CLASSPATH я сталкиваюсь со следующей проблемой.
leonard@hamster:~$ java -cp /home/leonard/mysql-connector-java-5.1.18-bin.jar LoadDriver
Exception in thread "main" java.lang.NoClassDefFoundError: LoadDriver
Caused by: java.lang.ClassNotFoundException: LoadDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: LoadDriver. Program will exit.
Я что-то упускаю? Как мне запустить собственные образцы кода MySQL.
Комментарии:
1. Я попытался, установив
$CLASSPATH
переменную среды, но она выдает мне ту же ошибку2. @brunopereira81 Я чувствовал, что это была одна из специфических особенностей Ubuntu…
3.
java -cp . LoadDriver
возвращает ту же ошибку?4. Он возвращает
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Ответ №1:
В пути к классу должны быть указаны как jar, так и текущий каталог.
java -cp .:/home/leonard/mysql-connector-java-5.1.18-bin.jar LoadDriver