4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Android Studio から Kotlin Script (*.kts) を実行する

Last updated at Posted at 2022-02-20

Kotlin 1.3.70 から Kotlin Scripting に対応しています。

Android Studio からも、*.main.kts ファイルを設置するだけで Kotlin を Script として実行可能です。

Android Studio から Kotlin Script を使用する手順を解説します。

*.main.kts スクリプトの設置

{任意のファイル名}.main.kts の形式で Kotlin Script を設置します。.main.kts 以外の suffix では動かないので、必ず .main.kts としてください。

サンプルとして以下のファイルを設置します。

script.main.kts

//@file:Repository("https://example.com/maven")
@file:DependsOn("com.ibm.icu:icu4j:70.1")

import com.ibm.icu.text.BreakIterator

fun CharSequence.displayLength(): Int {
    val iterator = BreakIterator.getCharacterInstance()
    iterator.setText(this.toString())
    var count = 0
    while (iterator.next() != BreakIterator.DONE) {
        count++
    }
    return count
}

println("🧑‍🦰".displayLength())

スクリプトの実行

script.main.kts を右クリックして Run 'script.main.kts' からスクリプトを実行します。

image.png

スクリプトの実行結果が Run ウィンドウに表示されます。

image.png

1 度実行すると、次からは Run Configuration に登録された履歴から実行できるようになります。

image.png

スクリプトの実行 (プロジェクトをビルドしない)

2022/08/02: コメントで教えていただいて手順を更新しました

現時点の intelliJ Kotlin Plugin (211-1.6.10-release-923-AS7442.40) では、上記の Kotlin script としての実行では、開いているプロジェクト全体をビルドしてしまいます。

Run Configurations から Before launch の Build を削除するとプロジェクト全体のビルドなしで Kotlin script を実行できます。

image.png

外部依存設定

以下の設定により、Kotlin Script から外部のライブラリを利用することができます。

mavenCentral リポジトリは定義を省略しても依存解決に使えるようです。

実装 説明
@Repository("...") 外部 Maven リポジトリの定義
@DependsOn("...") 外部 Maven ライブラリの依存定義
@Import("...") 他の Kotlin Script を読み込む

詳しくは以下のドキュメントを確認してください。

4
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?