저만 짜증난 걸지도 모르겠지만,
Intellij 2023.2
버전에서는 Jdk 21
를 완벽하게 지원하지 않았습니다.
간단한 Maven 프로젝트를 생성하고, Main 문 하나 돌리려고 할 때에도 추가적으로
제가 수동으로 세팅해줘야 하는 게 있었습니다.
그외에도 문법 자체를 인식 못하는 문제도 있었습니다.
하지만! 오늘 (2023-12-09
) 아침에 인텔리제이에 새로운 업데이트가 있어서 했는데,
아래와 같은 release note 내용을 발견했습니다.
마침내!!
간단하게 아래처럼 maven 프로젝트를 생성하고 곧바로 테스트 가능합니다.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>me.dailycode</groupId>
<artifactId>java-new</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>java-new</name>
<!-- (필수) properties 를 아래처럼 세팅! -->
<properties>
<java.version>21</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<!--
(이건 필수가 아닙니다!!!!)
spring boot dependencies version 정보 참조를 위한 bom import
-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>3.1.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- 생략 -->
</dependencies>
</project>
Virtual Thread 를 하나 생성해서 가볍게 돌려봤습니다.
그냥 순수하게 잘 돌아가는지만 확인하는 코드입니다.
package me.dailycode.new_jdk;
public class App {
public static void main(String[] args) throws InterruptedException {
Thread virtualThread = Thread.ofVirtual()
.unstarted(() -> {
System.out.println("who am i? " + Thread.currentThread());
});
virtualThread.start();
virtualThread.join();
System.out.println("End of Main Thread!");
}
}
알고 있겠지만, jdk 21 은 다양한 기능을 제공은 합니다만...
대부분이 preview
기능으로 나왔습니다. 그냥 좀 정식으로 내주지...
아무튼 이러한 preview 기능을 사용하고 싶으면 intellij 에서는 아래와 같이 간단하게
세팅만 바꿔주면 사용이 가능합니다.
(window 기준) ctrl + alt + shift + s
를 누르고 아래와 같이 세팅합니다.
이후에 아래처럼 String Template 기능을 가볍게 테스트해 볼 수 있습니다.
package me.dailycode.new_jdk;
public class App {
public static void main(String[] args) {
int i = 10;
int j = 2;
System.out.println(STR."\{i} + \{j} = \{i + j}");
}
}
// 출력:
// 10 + 2 = 12