Исправление
Legioner,
(текущая версия)
:
Когда ты запускаешь программу через -jar, jvm смотрит в META-INF/MANIFEST.MF твоего jar-файла, вытаскивает оттуда имя Main-класса и Classpath-а и использует их для запуска твоего приложения.
Когда приложение имеет зависимости, есть 3 основных способа его запуска:
java -cp $cp my.Main
Моё имхо — лучше всего использовать первый вариант. Он самый простой для понимания, скрипт пишется на коленке за 2 минуты (или гуглится) и все проблемы решаются быстро и просто. Преимущества -jar только в том, что в винде можно запускать дабл-кликом, но всё равно так никто не делает, серьёзные программы так или иначе пишут скрипты или лаунчеры.
Чтобы решить твою проблему — распакуй твой jar-файл, который ты запускаешь (jar xf или unzip), исследуй сгенерированный мавеном MANIFEST.MF, думаю проблема будет понятна после этого.
Исходная версия
Legioner,
:
Когда ты запускаешь программу через -jar, jvm смотрит в META-INF/MANIFEST.MF твоего jar-файла, вытаскивает оттуда имя Main-класса и Classpath-а и использует их для запуска твоего приложения.
Когда приложение имеет зависимости, есть 3 основных способа его запуска:
[ol]
java -cp $cp my.Main
Моё имхо — лучше всего использовать первый вариант. Он самый простой для понимания, скрипт пишется на коленке за 2 минуты (или гуглится) и все проблемы решаются быстро и просто. Преимущества -jar только в том, что в винде можно запускать дабл-кликом, но всё равно так никто не делает, серьёзные программы так или иначе пишут скрипты или лаунчеры.
Чтобы решить твою проблему — распакуй твой jar-файл, который ты запускаешь (jar xf или unzip), исследуй сгенерированный мавеном MANIFEST.MF, думаю проблема будет понятна после этого.