2014-01-04 4 views
-1

Я только что создал файл jar с идеей Intelij (со всеми зависимостями, конфигурацией конфигурации показано ниже). На моем компьютере все работает нормально. Но я получаю сообщение об ошибке, когда я запускаю эту банку на другом компьютере (вероятно, зависимость mysql-адаптера отсутствует, ошибка на экране ниже). Не могли бы вы посоветовать, что я делаю неправильно?Зависимости, отсутствующие в .jar

У меня недостаточно репутации для отправки изображений здесь, поэтому я разместил их в социальной сети - vk.com и предоставил ссылки. Извините за неудобства.

Intelij настройки идеи:

Http: //cs14113.vk.me/c322718/v322718617/964b/HDHClNkavg4.jpg

Http: //cs14113.vk.me/c322718/v322718617/9642 /nFliouxOVKU.jpg

выпуск на другом компьютере: HTTP: //cs14113.vk.me/c322718/v322718617/9639/AdIOBlObCak.jpg

+0

Извините, но хорошо или плохо, что я не доверяю вашим ссылкам, поскольку они похожи на спам? – hichris123

+0

Они не спам. Почему он спам ссылки? – BWG

+0

Если вы используете vk.com - вы узнаете, что они используют для ссылок другой домен - vk.me. Кроме того, у них много посетителей, поэтому они могут создавать множество из них (вот почему субдомен cs14113 появился в ссылке) – Alexander

ответ

0

стандартное поведение при создании JAR файлов является не включать все зависимости , но сообщите java, чтобы включить необходимые файлы jar с -cp, например. -cp mysql-driver.jar во время выполнения. Я настоятельно рекомендую это сделать!

Но если вы действительно хотите «все вы можете съесть» баночку со всеми зависимостями, вы могли бы пойти на File > Project Structure..., выберите Modules, выберите модуль, щелкните на вкладке Dependencies и установите флажки в столбце Export.

На вашем скриншоте похоже, что если вы включите все банки вашей папки lib, но как Classpath у вас есть абсолютное имя пути для mysql-коннектора. Разархивируйте созданную банку и посмотрите на ваш META-INF/MANIFEST.MF. Возможно, что MySQL-разъем только ссылка там и не включены в баночке:

jar tvf Rate_Updater.jar | grep mysql 

В качестве альтернативы вы можете попробовать Build > Build Artifacts... и выбрать артефакт, который содержит все зависимости. Не уверен, что что-то вроде этого существует для вашего типа проекта.

И если вы используете Maven, вы можете использовать плагин copy-dependencies. Как всегда, когда вы используете maven, вы закончите сотнями строк нечитаемого XML ;-)

+0

Он сказал, что он экспортировал все включенные зависимости –

Смежные вопросы