ktor выполняется жир jar throws java.lang.UnsupportedOperationException:: Пакеты и фасады файлов еще не поддерживаются в отражении Kotlin

Ниже приведен базовый файл ktor, который работает правильно из IDE, но я создал толстый jar-файл с "mvn install", и его запуск выдает следующее исключение:

Исключение в потоке "main" java.lang.UnsupportedOperationException: пакеты и фасады файлов еще не поддерживаются в отражении Kotlin. В то же время, пожалуйста, используйте отражение Java для проверки этого класса: class com.tech.ApplicationKt

fun main(args: Array<String>){
    embeddedServer(Netty, 8080){
        routing{
            get("/demo"){
                call.respondText("Hello demo")
            }
        }
    }.start(wait = true)
}

Я попытался выполнить JAR на Java 11 и 8, но я получаю то же исключение.

1 ответ

Я только что попробовал это, следуя официальному руководству на ktor.io для установки с Maven.

После этого я следовал за https://ktor.io/servers/deploy/packing/fatjar.html для компиляции jar-файлов.

Я столкнулся с 2 проблемами:

  1. Я впервые попробовал install:install задача из боковой панели IntelliJ Maven, но на самом деле вы должны использовать методы жизненного цикла install или просто package,
  2. Я должен был настроить mainClass атрибут подключаемого модуля maven, соответствующий моему собственному, например path.to.your.package.ServerKt или как там ваш файл называется.

Как только я исправил эти два, все заработало нормально.

Если у вас все еще есть проблемы, пожалуйста, покажите нам, что вы создаете файл.

Другие вопросы по тегам