Как использовать команду `java` с` kotlin-compiler.jar` для компиляции исходных кодов Kotlin?

Теперь мне ограничено использование команды java для компиляции исходного файла Kotlin.

Поэтому после некоторых попыток я нашел файл kotlin-compiler.jar в папке lib/ в kotlinc/ .

Затем я попытался написать файл kotlinc/lib/ в kotlinc/lib/ :

 public fun main(args: Array<String>) { println("hello") } 

А потом я выполнил команду java -jar kotlin-compiler.jar Hello.kt которая сработала и сгенерировала файл класса HelloKt.class .

В результате я выполнил команду java -cp ".:kotlin-runtime.jar" HelloKt , и он также работал:

 [xxxxxxx@uss lib]$ java -cp ".:kotlin-runtime.jar" HelloKt hello 

Но для более сложного исходного файла:

AimToTen.kt:

 class AimToTen() { fun need(marks: Array<Int>): Int { // multiply 10 first for (idx: Int in marks.indices) marks[idx] *= 10 val result: Int = 190 * marks.size - 2 * marks.sum(); return when { result < 0 -> 0 result % 10 != 0 -> result / 10 + 1 else -> result / 10; } } } 

Я попытался выполнить java -jar kotlin-compiler.jar AimToTen.kt , но некоторые функции пропущены (?):

 [xxxxxxx@uss intro1]$ java -jar kotlin-compiler.jar AimToTen.kt AimToTen.kt:4:32: error: unresolved reference: indices for (idx: Int in marks.indices) marks[idx] *= 10 ^ AimToTen.kt:10:56: error: unresolved reference: sum val result: Int = 190 * marks.size - 2 * marks.sum(); ^ 

Поэтому я снова попробовал:

 [xxxxxxx@uss intro1]$ java -jar kotlin-compiler.jar Welcome to Kotlin version 1.0.3 (JRE 1.8.0_65-b17) Type :help for help, :quit for quit >>> println(123) error: unresolved reference: println println(123) ^ >>> var test: IntArray = intArrayOf(1, 2) >>> test [I@7d64e326 >>> 

Кроме того, в другой папке Hello.kt не может быть скомпилирован, даже если я скопировал все файлы .jar в одной папке.


Эх, я ценю, если вы можете помочь мне с этой проблемой! Я хочу скомпилировать этот файл с помощью java команды без каких-либо абсолютных путей.

PS Использование kotlinc AimToTen.kt работает.

Как указано в документах , строка для компиляции файла Kotlin

 $ kotlinc hello.kt -include-runtime -d hello.jar 

Кстати, если вы пытаетесь узнать / попробовать Kotlin в командной строке (чего вы не должны!), Вы можете рассмотреть http://try.kotlinlang.org/