2016-03-22 9 views
1

私はKotlin Koans int IntelliJ EduKotlinプラグイン(https://plugins.jetbrains.com/plugin/8186)を実行してKotlinを学習しています。タスクを実行している間にこのプラグインが動作している間に、私は新しいKotlinスクリプトを作成してこのプラグインなしで実行することができません。IntelliJ IDEAでKotlinスクリプトを実行しようとしています

fun hello() : String { 
    return "ok" 
} 

は、その後、私はプロジェクト名に「作業ディレクトリ」「Kotlinスクリプト」、設定から派生した新しい実行構成を作成/ srcフォルダ(またはプロジェクト名のフォルダ:Hello.ktという名前のファイルに

サンプルコード、同じ結果)とIDEは私を示し「スクリプトファイルが見つかりませんでした:Hello.kt」警告を以下の画面のように:確かに

enter image description here

そして、私がFOL得たスクリプトを実行しようとしているときstacktrace:

"C:\Program Files\Java\jdk1.8.0_74\bin\java" -Dfile.encoding=windows-1250 -classpath C:\Users\myUser\.IdeaIC2016\config\plugins\Kotlin\kotlinc\lib\kotlin-compiler.jar;C:\Users\myUser\.IdeaIC2016\config\plugins\Kotlin\kotlinc\lib\kotlin-reflect.jar;C:\Users\myUser\.IdeaIC2016\config\plugins\Kotlin\kotlinc\lib\kotlin-runtime.jar org.jetbrains.kotlin.cli.jvm.K2JVMCompiler -script Hello.kt 
exception: java.lang.RuntimeException: Failed to evaluate script: kotlin.KotlinNullPointerException 
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileScript(KotlinToJVMBytecodeCompiler.kt:263) 
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileAndExecuteScript(KotlinToJVMBytecodeCompiler.kt:212) 
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:181) 
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:49) 
at org.jetbrains.kotlin.cli.common.CLICompiler.exec(CLICompiler.java:181) 
at org.jetbrains.kotlin.cli.common.CLICompiler.exec(CLICompiler.java:138) 
at org.jetbrains.kotlin.cli.common.CLICompiler.exec(CLICompiler.java:57) 
at org.jetbrains.kotlin.cli.common.CLICompiler.doMainNoExit(CLICompiler.java:248) 
at org.jetbrains.kotlin.cli.common.CLICompiler.doMain(CLICompiler.java:238) 
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler$Companion.main(K2JVMCompiler.kt:248) 
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.main(K2JVMCompiler.kt) 
Caused by: kotlin.KotlinNullPointerException 
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileScript(KotlinToJVMBytecodeCompiler.kt:475) 
... 10 more 


Process finished with exit code 2 

さらに、helloメソッドは使用されていないとマークされます。しかし、私は.ktscriptする.ktからファイルの拡張子を変更すると、このメソッドは使用されるようにマークされ、コードを実行しているからの出力は以下の通りです:

"C:\Program Files\Java\jdk1.8.0_74\bin\java" -Dfile.encoding=windows-1250 -classpath C:\Users\myUser\.IdeaIC2016\config\plugins\Kotlin\kotlinc\lib\kotlin-compiler.jar;C:\Users\myUser\.IdeaIC2016\config\plugins\Kotlin\kotlinc\lib\kotlin-reflect.jar;C:\Users\myUser\.IdeaIC2016\config\plugins\Kotlin\kotlinc\lib\kotlin-runtime.jar org.jetbrains.kotlin.cli.jvm.K2JVMCompiler -script Hello.kt 

エラー:ソースファイルまたはディレクトリが見つかりません:Hello.ktを

Process finished with exit code 1 

だから私の質問は:IntelliJのスタンドアロンKotlinスクリプトでKotlinコードを作成して実行しようとしたとき、私は何をしないのですか?

答えて

5

スタンドアロンのKotlinスクリプトファイルには.kts拡張子が必要です。ファイルの名前を変更する場合は、ファイルの新しい名前を参照するように実行構成が更新されていることも確認する必要があります。

また、関数のみを含むファイル(通常のKotlinファイルまたは.ktsファイル)を作成すると、その関数が呼び出されないため、スクリプトを実行しても出力は生成されません。いくつかの出力を表示するには、スクリプト内の関数を呼び出す必要があります:あなたが見た

fun hello(): String { 
    return "ok" 
} 

println(hello()) 

スタックトレースはa bug in Kotlinです。

+0

ありがとう@yole。ええ、どんな出力が私の次のステップになるのを見て:)最初は、エラーが消えたかった。 – koto

関連する問題