Это поведение пакета по умолчанию. Фаза пакета инструментов, таких как Gradle и Maven, только копирует исходные коды приложений (классы и ресурсы Java из каталога src) и НЕ включает файлы из зависимостей.
Поэтому файл jar, созданный по умолчанию, не имеет классов или ресурсов зависимостей.
Существует множество решений для запуска java-программы из файла jar с зависимостями:
- Поместите jar приложения, а также jar зависимостей в каталог (lib) и добавьте его в путь к классам при запуске основного класса.
java -cp lib/*.jar com.game.MainClass
Создать толстую (убер) банку. Плагины Gradle, такие как
Shadow , могут генерировать один jar со всеми зависимостями, упакованными в него. Просто укажите основной класс в манифесте.
java -jar myAppFat.jar
Используйте плагины, такие как
Launch4J для генерации исполняемых файлов Windows. Это замечательно, если вы хотите отправлять пользователям простые приложения «нажми и запускай».