Проблема
Я строю проект с использованием Gradle, но всякий раз, когда я хочу запустить JAR вручную через java -jar <the jar>
, происходит сбой со следующей ошибкой: Error: Could not find or load main class projectz.ProjectZ
.
Описание
Я уже понял, что мне нужно добавить следующие строки в мой проект Gradle:
mainClassName = 'projectz.ProjectZ'
jar {
manifest {
attributes('Main-Class': project.mainClassName)
}
}
Однако это не решает проблему.Я не могу выполнить свою банку.Создание той же банки с моей IDE (затмение) дает мне рабочую банку.Копирование и вставка моей папки META-INF
в мой JAR-файл, сгенерированный Gradle, также не решает проблему.
Для своих настроек я использую следующие плагины:
plugins {
id 'java'
id 'application'
id 'eclipse'
id 'idea'
}
Мой проекттакже зависит от другого проекта (так как это многопроектная установка), импортируемого через зависимости Gradle: compile project (':Lib')
Эта зависимость также не добавляется в мой jar-файл, но когда я запускаю installDist
с Gradle, она добавляетсяи я могу запустить свой JAR (думая только о каком-то пакетном файле, который Gradle помещает в папку), и java внезапно находит мой основной класс (который является не частью зависимости, а основного проекта).Попытка запустить JAR-файл поверх обычного java -jar <jar file>
способа по-прежнему не работает.
То, что я до сих пор пробовал
Я искал ошибку, которую дает мне Java, и добавил недостающие строки вмой файл build.gradle, думал, что это не решит проблему в моем случае.Я также искал в документации Gradle, чтобы выяснить, не пропустил ли я что-то там, но ничего не пропустил.
Моя настройка
- свежая установка Java 8 (которая мояПроект использует)
- новый проект и настройка Gradle
- новая установка Gradle с использованием Gradle 4.10.2