概要
なんか、Java 9 と Kotlin 1.2 だと、謎の警告メッセージが出てきて焦ったので、メモメモ。
私の環境の java は以下のようになってます。
$ java -version java version "9.0.1" Java(TM) SE Runtime Environment (build 9.0.1+11) Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
kotlin 自体は、IntelliJ IDEA のプラグインで入れてます。
kotlincってどこにあるんじゃーって探してたら以下の場所にありました。
$HOME\.IntelliJIdea2017.3\config\plugins\Kotlin\kotlinc\bin\kotlinc
で、kotlin のバージョンは
$ $HOME\.IntelliJIdea2017.3\config\plugins\Kotlin\kotlinc\bin\kotlin -version Kotlin version 1.2.21-release-88 (JRE 9.0.1+11)
たぶん、現時点での最新じゃないかなと。
変な警告でる
で、以下のようなドウデモイイサンプルをコンパイルして実行します。
fun main(args: Array<String>) { var i = 100 val ii = 100 println("hello world - $i - $ii") }
これを、IntelliJ IDEA から実行すると、普通に実行されます。
でも、kotlinc 直接つかってコンパイルすると
$ $HOME\.IntelliJIdea2017.3\config\plugins\Kotlin\kotlinc\bin\kotlinc helloworld.kt WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.intellij.util.text.StringFactory to constructor java.lang.String(char[],boolean) WARNING: Please consider reporting this to the maintainers of com.intellij.util.text.StringFactory WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release
なんか出てきた。
コンパイル自体は普通に完了していて、普通に実行できます。
$ $HOME\.IntelliJIdea2017.3\config\plugins\Kotlin\kotlinc\bin\kotlin HelloworldKt
hello world
バグ?
ネットでいろいろ情報さがしてみると、以下にヒット。
ここに以下の書き込みが
java 9 + kotlin で出る既知の問題とのこと。
リンク先に行ってみると
https://youtrack.jetbrains.com/issue/KT-19051
バグ登録されていて、すでに fix 済みになっていました。
Target versions が 1.2.30
なので、私の環境の 1.2.21
では再現するってことかな。
まあ、とりあえずIDE上は出ないし、キニスンナって事にします。
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。
- いろいろ備忘録日記サンプルソース置き場