2016-01-24 20 views
17

IntelliJが.ktsファイルをKotlinとして解析し、コードエディタがフリーフローティングKotlinファイルとしてそれらを選択することに気付きました。 mainメソッドでKotlinファイルと同じように、IntelliJでスクリプトを実行することもできます。スクリプトは上から下に実行されます。Kotlin/Java内からKotlin-Script(.kts)ファイルを実行するにはどうすればよいですか?

JavaやKotlinの中から簡単に使用できる方法が分かっていれば、このフォームは私が取り組んでいるプロジェクトにとって完璧です。

これらのスクリプトをJavaまたはKotlinから「実行」する方法は何ですか?

+2

あなたはhttps://github.com/cypressious/KotlinWを見てみることができます。基本的には、-scriptパラメータを指定してコンパイラを起動します。 –

+0

@KirillRakhmanありがとうございますが、パフォーマンスに影響はありませんか?また、Kotlin/Java内から関数、クラスなどを参照することもできません。 – Jire

+0

これが存在しない場合は、ファイルの名前とコンテンツを格納する 'run'のような関数を持つクラスのバイトコードを生成することで実装できますか? – Jire

答えて

19

Kotlinのスクリプトファイルのサポートはまだかなり実験的です。これは文書化されていない機能であり、私たちはまだ設計段階にあります。今日働いているものは、明日は変わり、壊れたり消えたりするかもしれません。

しかし、現在、スクリプトを呼び出すには2つの方法があります。あなたは、コマンドラインコンパイラを使用することができます

kotlinc -script foo.kts <args> 

それとも.ktsファイルをエディタまたはプロジェクトビューで右クリックして、のIntelliJ IDEAから直接スクリプトを起動し、「ファイル名を指定して実行を選択することができますが... 「:

Run .kts from IntelliJ IDEA

+2

公式ヘッドアップありがとうございます。私は、これらのスクリプトがJavaやKotlinでそれらを実行するための適切なバイトコードを生成するために何かに取り組むかもしれません。 – Jire

+0

@Alexanderランタイムアプリでkotlinを使用したスクリプトに関するニュースはありますか?可能であれば、groovyランタイムスクリプトをkotlinに置き換えたいと思っています:) – Dodge

+0

@Dodgeは、実行時にKotlinスクリプトをJSR 223(JavaスクリプティングエンジンAPI)によって実行しています。今日達成できるものの例は、https://github.com/JetBrains/kotlin/tree/master/libraries/examples/kotlin-jsr223-local-exampleで見つけることができます。私はそれが実装され、適切に文書化されるとすぐに私の答えを更新します。 –

関連する問題