Не работает простейший Hello Word
Я принялся за изучение котлин и столкнулся с проблемой что он не выводит простейший Hello Word:
fun main(args: Array<String>) {
println("Hello World!")
}
Выводит
"C:\Program Files\Java\jdk-14.0.1\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2020.1.1\lib\idea_rt.jar=59825:C:\Program Files\JetBrains\IntelliJ IDEA 2020.1.1\bin" -Dfile.encoding=windows-1251 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA 2020.1.1\plugins\Kotlin\kotlinc\lib\kotlin-compiler.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2020.1.1\plugins\Kotlin\kotlinc\lib\kotlin-reflect.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2020.1.1\plugins\Kotlin\kotlinc\lib\kotlin-stdlib.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2020.1.1\plugins\Kotlin\kotlinc\lib\kotlin-script-runtime.jar" org.jetbrains.kotlin.cli.jvm.K2JVMCompiler -kotlin-home "C:\Program Files\JetBrains\IntelliJ IDEA 2020.1.1\plugins\Kotlin\kotlinc" -script C:/Users/freQuensy/IdeaProjects/untitled/main.kts
main.kts:1:10: warning: parameter 'args' is never used
fun main(args: Array<String>) {
^
Process finished with exit code 0
Удалил аргументы (то что в скобках у main) Теперь просто возвращает пустую консоль. Использую IntelliJ IDEA 2020.1.1 x64
Ответы (1 шт):
Есть два подхода убрать это предупреждение:
- сменить расширение вашего файла с .kts на .kt.
- оставить расширение, но добавить непосредственный вызов функции main из кода скрипта, а сам массив args использовать каким-то образом:
main(arrayOf<String>("hello from script"))
fun main(args: Array<String>) {
println(args[0])
println("Hello World!")
}
.kts - это Котлин скрипт, который просто исполняется сверху вниз, как, например, bash скрипт, и функция main для него не является точкой входа.
.kt - это Котлин класс, и он будет работать таким же образом, как любой Java класс, то есть искать и начинать выполнение с метода main, подставляя в массив args переданные при запуске программы аргументы.