2021/12/24 このエントリーをはてなブックマークに追加 はてなブックマーク - KotlinはJDK17で動くの?実際に試してみた

KotlinはJDK17で動くの?実際に試してみた

カテゴリ: ,

こんにちは、yy_yankです。

こちらは Kotln Advent Calendar 2021(https://qiita.com/advent-calendar/2021/kotlin)の18日目の記事です

最近(?)JDK17が出ましたね。
ちゃんとKotlinはJDK17で動くのでしょうか?
実際に確かめてみました!



動きます!!!

〜FIN〜

ただの動作確認ですが、気になる方は続きの文章を一応読んでみてください


  • JDKはsdkmanで java/17.0.1-zulu/zulu-17.jdk を入れました


  • Spring BootとKotlinの最新版をJDK 17で動かす

buildscript {  
 ext {  
 kotlinVersion = '1.6.10'  
 springBootVersion = '2.6.2'  
 springDepencyManagementVersion = '1.0.11.RELEASE'  
 }  
 repositories {  
 mavenCentral()  
 } dependencies {  
 classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")  
 classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}")  
 classpath("org.jetbrains.kotlin:kotlin-allopen:${kotlinVersion}")  
 }}  
  
plugins {  
 id 'org.jetbrains.kotlin.jvm' version "$kotlinVersion"  
 id "org.jetbrains.kotlin.plugin.spring" version "$kotlinVersion"  
 id 'idea'  
 id 'maven-publish'  
 id 'io.spring.dependency-management' version "$springDepencyManagementVersion"  
 id 'org.springframework.boot' version "$springBootVersion"  
}  
  
group 'com.github.yyYank'  
version '1.0-SNAPSHOT'  
  
repositories {  
 mavenCentral()  
}  
java.sourceCompatibility = JavaVersion.VERSION_17  
  
bootJar {  
 archiveFileName = "kotln-jdk.jar"  
}  
  
repositories {  
 mavenCentral()  
}  
  
dependencies {  
 implementation("org.springframework.boot:spring-boot-starter-web")  
 implementation("com.fasterxml.jackson.module:jackson-module-kotlin")  
 implementation("org.jetbrains.kotlin:kotlin-reflect")  
 implementation "org.jetbrains.kotlin:kotlin-stdlib"   
 }  
}  
  
test {  
 useJUnitPlatform()  
}  
  
compileKotlin {  
 kotlinOptions.jvmTarget = '17'  
 kotlinOptions.freeCompilerArgs = ["-Xjsr305=strict"]  
}  
  
compileTestKotlin {  
 kotlinOptions.jvmTarget = '17'  
 kotlinOptions.freeCompilerArgs = ["-Xjsr305=strict"]  
}
package com.github.yyYank.app  
  
import org.springframework.web.bind.annotation.GetMapping  
import org.springframework.web.bind.annotation.RestController  
  
@RestController  
class HelloController {  
 @GetMapping  
 fun hello() = "hello jdk17"  
}
package com.github.yyYank.app  
  
import org.springframework.boot.autoconfigure.SpringBootApplication  
import org.springframework.boot.runApplication  
  
@SpringBootApplication  
class KotlinJdk17Application  
  
fun main(args: Array<String>) {  
    runApplication<KotlinJdk17Application>(*args)  
}
結果

Starting KotlinJdk17ApplicationKt using Java 17.0.1 on と出ていたのでオッケー

./gradlew -d bootRun
idates/java/17.0.1-zulu/zulu-17.jdk/Contents/Home/bin/java''
2021-12-24T10:10:09.274+0900 [DEBUG] [org.gradle.process.internal.ExecHandleRunner] waiting until streams are handled...
2021-12-24T10:10:09.826+0900 [QUIET] [system.out] 
2021-12-24T10:10:09.826+0900 [QUIET] [system.out]   .   ____          _            __ _ _
2021-12-24T10:10:09.826+0900 [QUIET] [system.out]  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
2021-12-24T10:10:09.826+0900 [QUIET] [system.out] ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
2021-12-24T10:10:09.826+0900 [QUIET] [system.out]  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
2021-12-24T10:10:09.826+0900 [QUIET] [system.out]   '  |____| .__|_| |_|_| |_\__, | / / / /
2021-12-24T10:10:09.826+0900 [QUIET] [system.out]  =========|_|==============|___/=/_/_/_/
2021-12-24T10:10:09.827+0900 [QUIET] [system.out]  :: Spring Boot ::                (v2.6.2)
2021-12-24T10:10:09.827+0900 [QUIET] [system.out] 
2021-12-24T10:10:09.874+0900 [QUIET] [system.out] 2021-12-24 10:10:09.873  INFO 64549 --- [           main] c.g.yyYank.app.KotlinJdk17ApplicationKt  : Starting KotlinJdk17ApplicationKt using Java 17.0.1 on C02DX1AEML86 with PID 64549 (/Users/yy_yank/ghq/github.com/yyYank/kotlin-jdk-17/build/classes/kotlin/main started by yy_yank in /Users/yy_yank/ghq/github.com/yyYank/kotlin-jdk-17)
curl -X GET localhost:8080
hello jdk17%

いかがでしたでしょうか(様式美)

はい、ということで普通に動きますのでバージョンアップしていきましょう!!



0 件のコメント:

コメントを投稿

GA