0

当我想从我的 gradle 项目运行 jar 时,它显示:

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 工作正常,没有任何磨损。构建 gradle 任务也成功。但即使生成的 manifest.mf 看起来像这样,我也无法运行它:

Manifest-Version: 1.0
Main-Class: grm.bol.Launcher
Class-Path: ini4j-0.5.2.jar

有人知道清单发生的原因吗?

4

1 回答 1

0

很可能当您尝试运行它时,您会弄乱类路径,因此使用了错误版本的 InvalidFileFormatException。如果您有胖 jar,则可能是构建时的版本冲突。

于 2014-11-03T12:34:28.307 回答