0
0

ChronoUnitをimportで読み込めない時の対処法【IntelliJ・SDK】

Posted at

今回はJavaのSDKバージョンとIntelliJの関係で少しハマったので記事にしたい。

使用環境
IntelliJ使用 ver 2022/2/3 ver
SDK 21を選択時

OSS参画時に、レビューを依頼されて中身を確認していたら、
ChronoUnitが読み込まない事象が発生。

スクリーンショット 2024-09-20 215505.png
スクリーンショット 2024-09-20 215514.png

import java.time.temporal.ChronoUnit;
が読み込まずに、下記

import org.threeten.bp.temporal.ChronoUnit;

が適用されてしまう状態になっていた。

上記の現象は一般的には、
特定の古いJavaバージョン(特にJava 7以前)での日時操作を行うためのライブラリであるThreeTen(ThreeTen Backport)を利用しているから。という点が考えられたが、

最初に記載した通り、SDKのversionは21を選択しており、
特に古い設定を選んでいるわけではなった。

調べてみると、
Java 21 は IntelliJ 2023.1 バージョンではサポートされていません。現在は2023.2.2 リリースからサポートされています。
参考記事

とのことで、単純にIntelliJのverが古くJava21に対応していなかったため、特定のクラスの読み込みができていなかったということのようだった。

また、今回はたまたまChronoUnitだったが、特定のクラスが見つからない状態になるようだ。

そのため、今回の問題に対しての解決策は下記の2点。

1.Java SDK 17に変更をする(JavaSDKバージョンを落とす)
2.IntelliJのverを2023.2.2 リリース以上にあげる

こういう小さい部分ってたまに結構ハマりすよね。

IntelliJのプライベートPCのverの更新は全然していなかったので
(もともとがJava8などで構築していたため問題も生じなかった)
その辺りも盲点になってしまいました。

という記録でした。

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