Как можно при запуске приложения в classpath указывать любое количество подключаемых библиотек (в виде jar-файлов)?
Здравствуйте. Столкнулся с ограничением командной строки в виндоуз. У меня сборка проекта идёт через грейдл, для запуска используется автоматически сконструированный bat-ник. Одной из последних строк этого файла идёт строка запуска итогового приложения. И грейдл добавляет в эту строку список всех используемых библиотек (а он немаленький). Соответственно, если папка, откуда запускается приложение, имеет большое имя, то ничего не запускается. Я думаю, что это не такая уж и редкая проблема, и уже должно быть выработано какое-то решение, но пока, порывшись в интернете, я его не нашёл. Подскажите, что надо делать, или хотя бы как это искать.
Сергей Горностаев, Раньше сразу же окно командой строки закрывалось. Сейчас какие-то логи в него пишет, а потом уже закрывается. Но что-то по логам я пока не могу понять, что такое. А если так написать, со звёздочкой, то он подкаталоги тоже же берёт? Или их надо указывать отдельно?
Этот драйвер не поддерживает среду выполнения Java (JRE) версии 1.8. Используйте библиотеку классов sqljdbc4.jar, которая обеспечивает поддержку JDBC 4.0
Поискал в нете по этой ошибке, вышел на страницу с сайта майкрософта клик
Так вот, там есть такая фраза:
Необходимо убедиться в том, что инструкция CLASSPATH содержит только один драйвер Microsoft SQL Server JDBC, то есть либо sqljdbc.jar, либо sqljdbc4.jar.
У меня как раз в папке с либами лежали оба файла. Просто при запуске приложение в скрипт-файле жёстко указывался один из них.
Я просто удалил этот файл из папки, путь к которой я прописываю в classpath, и всё заработало.
Варианты:
- скопировать все зависимости в jre/lib/ext
- собрать все зависимости в 1 единственный jar и указывать его как зависимость
- собрать все зависимости внуть вашей проги тогда даже не надо указывать classpath
- не использовать длинные имена папок и файлов
- подгружать все зависимости непосредственно самой прогой класслоадером перед запуском основного кода
Уже нашёл решение, отметил его выше. Но всё равно спасибо за Ваш ответ, тоже интересные варианты (особенно заинтересовал вариант с закидыванием всех джарников в один джарник)