#java #sql #jar
#java #sql #jar
Вопрос:
Я хотел попробовать использовать SQL с Java, поэтому я скачал mysql-connector-java-5.1.18-bin.jar .
Я использую Eclipse, поэтому я зашел в Eclipse, Project -> Properties и добавил файлы jar.
Я также добавил следующее в свой путь к классу:
- C:UsersshahinDesktopmysql-connector-java-5.1.18commysqljdbc;
- C:UsersshahinDesktopmysql-connector-java-5.1.18mysql-connector-java-5.1.18-bin.jar;
Он отлично работает в Eclipse, но когда я запускаю свой. Файл Jar Я получаю эту ошибку:
Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at Main.main(Main.java:15)
Комментарии:
1. Что вы имеете в виду, «когда я запускаю свой файл jar»? Как вы его запускаете?
Ответ №1:
Ваш путь к классу для mysql .jar, скорее всего, отключен. Находится ли ваш jar рядом с jar mysql? (Если на него не указывают) Чтобы проверить это, вы можете поместить два в один каталог и посмотреть, выполняется ли он.
Ответ №2:
Это потому mysql-connector-java-5.1.18-bin.jar
, что его нет в вашем пути к классу при запуске jar.
Внутри вашего .jar
файла должен быть META-INF/MANIFEST.MF
файл. Вам нужна запись в этом файле для вашего пути к классу, которая указывает, где mysql-connector-java-5.1.18-bin.jar
находится файл:
Class-Path: path/to/mysql-connector-java-5.1.18-bin.jar
Обратите внимание, что это может быть локальным для вашего jar. Обычный способ сделать это — создать lib
подкаталог, в котором находится ваш jar, содержащий другие jar, от которых зависит ваш:
Class-Path: lib/mysql-connector-java-5.1.18-bin.jar
Комментарии:
1. Если у меня есть это в моем jar, как это будет выглядеть? ../the-jar-file.jar ?
2. У вас не может быть этого в вашем jar.
3. Ну, для полноты картины вам это не нужно , вам просто нужно убедиться, что он указан в пути к классу при выполнении. Это один из способов сделать это. (И если он не распространяется, не уверен, что он лучший, но это уже другой разговор 🙂
4. Если кто-то еще хочет запустить его, я должен поместить jar и mysql… jar в папку? Это отстой
5. Ну, это было странно.. Когда я добавляю Class-Path: в свой файл манифеста, он выдает сообщение «Не удается найти основной класс «Main»….. Если я не включу путь к классу в файл манифеста, в нем будет указано ClassNotFound com.mysql.Driver