Когда я хочу, чтобы запустить баночку из моего Gradle проекта показывает:java.lang.NoClassDefFoundError: орг/ini4j/InvalidFileFormatException по Gradle
Exception in thread "main" java.lang.NoClassDefFoundError: org/ini4j/InvalidFileFormatException
Мой build.gradle короче:
apply plugin: 'java'
apply plugin: 'pmd'
apply plugin: 'application'
apply plugin: 'eclipse'
version = "0.0.0"
group= "grm"
mainClassName = 'grm.bol.Launcher'
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
compile group: 'org.ini4j', name: 'ini4j', version: 'latest.release'
}
jar {
manifest {
attributes "Main-Class": "grm.bol.Launcher"
attributes "Class-Path": configurations.compile.collect { it.getName() }.join(' ')
}
}
Когда я забегаю в eclipse, ini4j отлично работает, не беспокоясь. Также успешно выполняйте задачу градиента. Но я не могу запустить его, даже если генерируется manifest.mf выглядит следующим образом:
Manifest-Version: 1.0
Main-Class: grm.bol.Launcher
Class-Path: ini4j-0.5.2.jar
Кто-то знает причину того, что происходит с манифеста?
Эта запись Class-Path предусматривает, что банда Ini4j находится рядом с банкой, которую вы строите. Вы убедились в этом, скопировав его там? Для более легкого опыта работы с исходными кодами рассмотрите возможность использования плагина 'application'. –
Я хочу сделать только одну банку. Так что в папке lib есть только тот файл jar, который я хочу запустить. – Levvy
Как я уже сказал, запись класса Path, которую вы объявили, требует ini4j Jar в том же каталоге, что и ваш Jar. Запись не требуется для запуска приложения с помощью задачи «запускать» плагина приложения. –