我有一个带有gradle的javaFx Kotlin应用程序构建。 这是一个包含main方法的文件:
package com.grined.toptal.invoice
import javafx.application.Application
fun main(args: Array<String>) {
Application.launch(App::class.java)
}
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"
...
}
...
我打电话给gradle clean build
制作一个罐子。
当我试图致电java -jar jarName.jar
时,我看到了错误:
Error: Could not find or load main class com.grined.toptal.invoice.MainKt
我尝试使用Main
代替MainKt
,同样的问题。另外,我检查了jar文件的内容,并且在必要的地方有一个必要的文件。
答案 0 :(得分:1)
问题在于依赖org.mapdb:mapdb:3.0.5
。删除它 - 解决了问题。