Не могу запустить программы Kotlin в командной строке - PullRequest
0 голосов
/ 28 июня 2019

Я скачал zip-файл компилятора kotlin 1.2.21, распаковал его в C: \ Program files \, а также добавил папку bin в системную переменную PATH. Я уже установил и настроил JDK.

Я написал простую программу, сохранил ее в C: \ USERS \ USER \ с именем args.kts и запустил в cmd с помощью этой команды: kts args.kts Hello

Но я получаю эту ошибку каждый раз:

exception: java.lang.ArrayIndexOutOfBoundsException: Index 11052 out of bounds for length 11052
        at org.jetbrains.org.objectweb.asm.ClassReader.readUnsignedShort(ClassReader.java:2464)
        at org.jetbrains.org.objectweb.asm.ClassReader.readUTF8(ClassReader.java:2525)
        at org.jetbrains.org.objectweb.asm.ClassReader.readModule(ClassReader.java:761)
        at org.jetbrains.org.objectweb.asm.ClassReader.accept(ClassReader.java:646)
        at org.jetbrains.org.objectweb.asm.ClassReader.accept(ClassReader.java:507)
        at org.jetbrains.kotlin.resolve.jvm.modules.JavaModuleInfo$Companion.read(JavaModuleInfo.kt:67)                                                       at org.jetbrains.kotlin.cli.jvm.modules.CliJavaModuleFinder.findSystemModule(CliJavaModuleFinder.kt:44)
        at org.jetbrains.kotlin.cli.jvm.modules.CliJavaModuleFinder.access$findSystemModule(CliJavaModuleFinder.kt:25)
        at org.jetbrains.kotlin.cli.jvm.modules.CliJavaModuleFinder$systemModules$1.invoke(CliJavaModuleFinder.kt:37)
        at org.jetbrains.kotlin.cli.jvm.modules.CliJavaModuleFinder$systemModules$1.invoke(CliJavaModuleFinder.kt:25)                                         at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:149)                          at kotlin.sequences.FilteringSequence$iterator$1.calcNext(Sequences.kt:109)
        at kotlin.sequences.FilteringSequence$iterator$1.hasNext(Sequences.kt:133)
        at kotlin.sequences.FlatteningSequence$iterator$1.ensureItemIterator(Sequences.kt:254)
        at kotlin.sequences.FlatteningSequence$iterator$1.hasNext(Sequences.kt:241)
        at kotlin.sequences.SequencesKt___SequencesKt.none(_Sequences.kt:1239)
        at org.jetbrains.kotlin.cli.jvm.compiler.ClasspathRootsResolver.addModularRoots(ClasspathRootsResolver.kt:227)
        at org.jetbrains.kotlin.cli.jvm.compiler.ClasspathRootsResolver.computeRoots(ClasspathRootsResolver.kt:124)
        at org.jetbrains.kotlin.cli.jvm.compiler.ClasspathRootsResolver.convertClasspathRoots(ClasspathRootsResolver.kt:79)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.<init>(KotlinCoreEnvironment.kt:230)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.<init>(KotlinCoreEnvironment.kt:114)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$Companion.createForProduction(KotlinCoreEnvironment.kt:409)
        at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.createCoreEnvironment(K2JVMCompiler.kt:286)
        at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.createEnvironmentWithScriptingSupport(K2JVMCompiler.kt:276)
        at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:170)
        at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:63)
        at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:109)
        at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:53)
        at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:92)
        at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:70)
        at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:36)
        at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit(CLITool.kt:157)
        at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMain(CLITool.kt:148)
        at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler$Companion.main(K2JVMCompiler.kt:343)
        at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.main(K2JVMCompiler.kt)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:567)
        at org.jetbrains.kotlin.preloading.Preloader.run(Preloader.java:81)
        at org.jetbrains.kotlin.preloading.Preloader.main(Preloader.java:43)

К вашему сведению, я подписался на этот сайт: http://otfried.org/courses/cs109/project-install.html

Это мой код в файле args.kts , который был предоставлен на вышеуказанном сайте:

println("Your arguments are:")

for (i in 0 until args.size) {
  println("$i: ${args[i]}")
}

Пожалуйста, скажите мне, что делать.

Ответы [ 2 ]

0 голосов
/ 29 июня 2019

Я думаю [Бенджамин Шарайс] (https://stackoverflow.com/users/7729375/benjamin-charais) прав.

Есть аргументы args.size. Так что ваш цикл должен быть:

для (я в 0 до(args.size - 1)) {...

Извините, я потратил ваше время раньше.

0 голосов
/ 28 июня 2019

Я следовал инструкциям для «Ручной установки» at Работа с компилятором командной строки .

Если вам нужен Kotlin REPL, установите Kotlin 1.3.31 - 1.3.40 сбои .

Отлично работал на моем Lubuntu 16.04 LTS. У меня нет Windows, чтобы попробовать это. Сожалею. Но это учебник от JetBrains. Они должны знать. Кроме того, вы можете найти больше их документации и учебных пособий там. Удачи и счастливого обучения!

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