Kotlin компилируется и запускается из командной строки

#kotlin

Вопрос:

Как я могу скомпилировать и запустить файлы kotlin? Без maven, gradle или kotlin-DSL-gradle, только параметры командной строки.

У меня есть два файла kotlin в play папке

пользователь.kt

 data class User(val name: String)
 

играть.кт

 fun main() {
  val user = User("Jim")
  println("Hello ${user.name}")
}
 

Я пытаюсь запустить его как

 kotlinc play.kt -cp . -include-runtime -d play.jar amp;amp; java -jar play.jar
play.kt:2:14: error: unresolved reference: User
  val user = User("Jim")
 

Но он не может найти User класс, хотя я установил -cp . , как заставить его работать?

P.S.

Можно ли было бы избежать создания jar и использовать кэширование и инкрементную компиляцию, чтобы сделать это быстрее?

Ответ №1:

Проблема заключается в компиляции команды, вы указали только один файл для компиляции (игра.КТ), так что компилятор видит, что играть.КТ ссылки на User.class ну и конечно не могу найти этот файл в classpath (-CP в .), потому что вы не скомпилировать этот файл раньше, поэтому вам нужно скомпилировать всю папку игры и пропустить -СР параметр.

попробуйте это: kotlinc play/ -включить-время выполнения-d play.jar amp;amp; java -jar play.jar

Что касается кэширования и инкрементной компиляции — Нет, это не входит в обязанности компилятора Kotlin (https://kotlinlang.org/docs/compiler-reference.html), вам необходимо использовать инструменты сборки для этих целей.