Kotlin Coroutines(org.jetbrains.kotlinx:kotlinx-coroutines-core)の依存関係追加
Kotlinのスレッド処理は、コルーチン(Coroutines)の使用がおすすめのようです。Coroutines guide
早速サンプルを実行してみようと思ったのですがビルドエラーになります。
Kotlinの標準ライブラリではないので、依存関係の指定が追加で必要でした。
初学者で地味に困ったので依存関係の追加方法をメモしておきます。
環境はこちらの手順で作成したものになります。
Kotlin + VS Code + Ubuntu 24.04での実行環境作成
build.gradle.kts
まずファイルのパスがわからず苦戦したのですが、依存関係を記載しているファイルは
app/build.gradle.ktsになります。
dependenciesにCoroutinesの依存関係を追記します。
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0")
app/build.gradle.kts全体は以下のようになりました。
- /*
- * This file was generated by the Gradle 'init' task.
- *
- * This generated file contains a sample Kotlin application project to get you started.
- * For more details on building Java & JVM projects, please refer to https://docs.gradle.org/8.11.1/userguide/building_java_projects.html in the Gradle documentation.
- */
- plugins {
- // Apply the org.jetbrains.kotlin.jvm Plugin to add support for Kotlin.
- alias(libs.plugins.kotlin.jvm)
- // Apply the application plugin to add support for building a CLI application in Java.
- application
- }
- repositories {
- // Use Maven Central for resolving dependencies.
- mavenCentral()
- }
- dependencies {
- // Use the Kotlin JUnit 5 integration.
- testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
- // Use the JUnit 5 integration.
- testImplementation(libs.junit.jupiter.engine)
- testRuntimeOnly("org.junit.platform:junit-platform-launcher")
- // This dependency is used by the application.
- implementation(libs.guava)
- // Coroutinesを使用するため、以下の行を追記
- implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0")
- }
- // Apply a specific Java toolchain to ease working on different environments.
- java {
- toolchain {
- languageVersion = JavaLanguageVersion.of(21)
- }
- }
- application {
- // Define the main class for the application.
- mainClass = "org.example.AppKt"
- }
- tasks.named<Test>("test") {
- // Use JUnit Platform for unit tests.
- useJUnitPlatform()
- }
サンプルプログラム
サンプルプログラムをそのまま実行してみます。
- package org.example
- import kotlinx.coroutines.*
- fun main() = runBlocking { // this: CoroutineScope
- launch { // launch a new coroutine and continue
- delay(1000L) // non-blocking delay for 1 second (default time unit is ms)
- println("World!") // print after delay
- }
- println("Hello") // main coroutine continues while a previous one is delayed
- }
ビルドが成功し、実行結果が表示されました。
Hello
World!
Kotlinを使用している方には当たり前の内容だと思いますが、備忘録としてメモしておきます。
- 関連記事
-
- Kotlin java.net.http.HttpClientによる非同期通信
- Kotlin JSON形式のデータのエンコード、パース
- Kotlin Coroutines(org.jetbrains.kotlinx:kotlinx-coroutines-core)の依存関係追加
- Java経験者のKotlin Nullableとlet
- Java経験者のKotlin コンストラクタ、インターフェース、継承
コメント