Java 在带有gradle的Kotlin应用程序构建中的Jar中找不到主类

Java 在带有gradle的Kotlin应用程序构建中的Jar中找不到主类,java,gradle,javafx,jar,kotlin,Java,Gradle,Javafx,Jar,Kotlin,我用gradle构建了一个javaFx Kotlin应用程序。 它是一个包含main方法的文件: package com.grined.toptal.invoice import javafx.application.Application fun main(args: Array<String>) { Application.launch(App::class.java) } 我打电话给gradle clean build来制作一个罐子 当我试图调用java-jar

我用gradle构建了一个javaFx Kotlin应用程序。 它是一个包含main方法的文件:

package com.grined.toptal.invoice

import javafx.application.Application

fun main(args: Array<String>) {
    Application.launch(App::class.java)
}
我打电话给gradle clean build来制作一个罐子

当我试图调用java-jar jarName.jar时,我看到一个错误:

错误:无法找到或加载主类com.grined.toptal.invoice.MainKt


我试着用Main代替MainKt,同样的问题。另外,我检查了jar文件的内容,并且在所需的位置有一个必需的文件。

问题在于依赖关系org.mapdb:mapdb:3.0.5。移除它-解决问题。

gradle运行正常吗?是的,它正常工作。我也有类似问题。删除依赖项后,它现在可以工作了。您是否找到了一种方法来继续使用依赖项并使其工作。这个问题很奇怪。
version = '1.4'


buildscript {
    ext.kotlin_version = '1.2.41'

    repositories {
        mavenCentral()
    }

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

apply plugin: 'kotlin'
apply plugin: 'application'

mainClassName = "com.grined.toptal.invoice.MainKt"

jar {
    zip64 = true
    manifest {
        attributes "Main-Class": "$mainClassName"
    }

    from {
        configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) }
    }
}
dependencies {
    compile "org.mapdb:mapdb:3.0.5"
    ...
}
...