1
1

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 3 years have passed since last update.

Kotlin Coroutineのサンプルをコマンドラインから実行する方法

Last updated at Posted at 2020-04-01

やりたいこと

みんな最初に実行する以下のコードをコマンドラインでビルドして実行する。


import kotlinx.coroutines.*

fun main() {
    GlobalScope.launch { // launch a new coroutine in background and continue
        delay(1000L) // non-blocking delay for 1 second (default time unit is ms)
        println("World!") // print after delay
    }
    println("Hello,") // main thread continues while coroutine is delayed
    Thread.sleep(2000L) // block main thread for 2 seconds to keep JVM alive
}

前提条件

  • MacOS
  • Javaインストール済み
  • Mavenインストール済み
  • 上のソースがfirst.ktという名前でカレントディレクトリにある

実施する作業

  1. kotlinコンパイラのダウンロード
  2. kotlin coroutineのjarファイルのダウンロード
  3. ソースコードのコンパイル
  4. コマンドラインから実行

手順

1 . kotlinコンパイラのダウンロード

公式サイトに手順の記載あり [(ここ)] (https://kotlinlang.org/docs/tutorials/command-line.html#downloading-the-compiler)

2 . kotlin coroutineのjarファイルのダウンロード

以下のコマンドを実行すると、
カレントディレクトリに kotlinx-coroutines-core-1.3.5.jar がDLされます。


mvn dependency:get -Dartifact=org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.5  -Ddest=./

3 . ソースコードのコンパイル

以下のコマンドを実行すると
カレントディレクトリに first.jar が生成されます。

kotlinc -cp kotlinx-coroutines-core-1.3.5.jar  first.kt -include-runtime -d first.jar

4 . コマンドラインから実行

以下のコマンドを実行

java -cp ./first.jar:./kotlinx-coroutines-core-1.3.5.jar FirstKt

なぜこれをやったか?

理由は以下の3点

  • [遊び場] (https://play.kotlinlang.org/) で実行すると HelloWorldが同時に表示されて微妙だと思ったから
  • 拡張ライブラリを使ったkotlinのソースをコマンドラインでビルドしてみたかった
  • AndroidStudioを立ち上げるのが面倒だった
1
1
0

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?