kotlin fun main (args: Array <String>) не работает в командной строке - PullRequest
2 голосов
/ 26 апреля 2019

В Kotlin 1.3.30, который я только что установил, функция основного входа не работает в командной строке.JDK - версия 8. Intellij Idea - 2019.1.1.Нет зависимости, очень чистый проект.

Когда я начал изучать Kotlin, основной записью было «fun main (args: Array)».В прошлом году «fun main ()» можно было использовать без «args», и я часто его использовал.Сейчас у меня в проекте нужны параметры командной строки, но что-то идет не так.Я пробовал 3 формата:

// 1. doesn't work.
fun main(vararg args: String){
    println("this is a test.")
}

// 2. doesn't work
fun main(args: Array<String>){
    println("this is a test.")
}

// 3. this works. but where can I get the command line parameters?
fun main(){
    println("this is a test.")
}

1 & 2 имеет тот же ответ:

λ java -jar test-1.0-SNAPSHOT.jar
Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
        at com.yxy.ProgramFileKt.main(ProgramFile.kt)
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 1 more

Он отлично работает с 3 без изменения каких-либо других вещей.Но мне нужны аргументы командной строки.

1 Ответ

3 голосов
/ 26 апреля 2019

Судя по исключению, ваша банка не содержит стандартную библиотеку Kotlin. Вам нужно немного изменить свою сборку.

Добавление чего-то подобного в вашу сборку Gradle должно исправить это:

dependencies {
  compile "org.jetbrains.kotlin:kotlin-stdlib:1.2.0"
}

P.S. Эта ошибка очень распространена и имеет мало общего с функцией main. Попробуйте погуглить сообщение об ошибке.

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