Итак, у меня есть программа, предназначенная для запуска с терминала, который должен подключаться к серверу mysql локально на компьютере, на котором она запущена. Однако существует конфликт, когда коннектор также рассматривается как основная программа (я думаю). выдает эту ошибку при запуске из терминала:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at nu.educom.dbInsert.MySqlConn.getConn(MySqlConn.java:25)
at nu.educom.dbInsert.ConsoleApp.start(ConsoleApp.java:56)
at nu.educom.dbInsert.Main.main(Main.java:13)
Я пытался сделать мой манифест так:
Manifest-Version: 1.0
Main-Class: nu.educom.dbInsert.Main
Class-Path: lib/mysql-connector-java-5.1.22.jar
Я перемещался по соединителю буквально в каждом каталоге, существующем в моей программе. Работает нормально при запуске из IDE.
Параметры, указанные при запуске из терминала, используются для подключения к локальному серверу mysql. Все решения, которые я нашел на SO, касаются работы в IDE. Я нашел один очень устаревший пост на каком-то другом сайте, предлагающий указать путь к классам в манифесте Я не знаю, что именно положить туда, хотя это даже то, что мне нужно.
команда для запуска программы в терминале:
dbInsert -p:**** -u:root -d:products empty.csv
где dbInsert - псевдоним:
dbInsert="cd ~/desktop/projects/java/dbInsert/out/production/dbInsert/; java nu/educom/dbInsert/Main"