Java 在带有gradle的Kotlin应用程序构建中的Jar中找不到主类
我用gradle构建了一个javaFx Kotlin应用程序。 它是一个包含main方法的文件: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
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"
...
}
...