Не могу найти основной класс в Jar в Kotlin, сборка приложения с Gradle - PullRequest
0 голосов
/ 02 мая 2018

У меня есть сборка приложения javaFx Kotlin с Gradle. Это файл, содержащий основной метод:

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-файла и в нужном месте есть необходимый файл.

1 Ответ

0 голосов
/ 03 мая 2018

Проблема была с зависимостью org.mapdb:mapdb:3.0.5. Удаление - решает проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...