본문 바로가기

Engineering/Java

javac: invalid target release: 11 문제 해결

728x90

- maven pom 설정

<plugins> 
  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <inherited>true</inherited>
    <version>3.6.2</version>
    <configuration>
      <fork>true</fork>
      <source>${java.version}</source>
      <target>${java.version}</target>
      <optimize>true</optimize>
      <encoding>UTF-8</encoding>
      <compilerVersion>${java.version}</compilerVersion>
    </configuration>
  </plugin>
</plugins>

 

intelliJ 프로젝트 설정 - 프로젝트 - SDK - java 11 로 맞췄는데, mvn 빌드 시 이런 오류가 발생한다면

[ERROR] javac: invalid target release: 11
[ERROR] Usage: javac <options> <source files>

 

mvn 명령어가 사용하는 java 버전을 확인해보자.

JAVA_HOME 을 java 11 이 설치된 폴더로 변경 및 PATH 설정

> set JAVA_HOME c:\java11
> set PATH=C:\java11\bin

 

새로운 java11 로 설정을 변경했는데도 동일한 오류가 난다면 이번에는 mvn -version 을 확인해보자.

D:\> mvn -version
Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-28T00:06:16+09:00)
Maven home: C:\apache-maven\bin\..
Java version: 1.8.0, vendor: Oracle Corporation, runtime: C:\openjdk-1.8.0
Default locale: ko_KR, platform encoding: MS949
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
D:\>

 

intelliJ 에서 JAVA_HOME 을 변경했는데도 intelliJ terminal 에서 위와 같이 나와서 (윈도우 cmd 에서는 변경된 java home 으로 보임), 그래서 intelliJ 를 재시작하고 나니깐 아래와 같이 정상적으로 나오고 mvn package 명령이 정상 동작한다.

D:\> mvn -version
Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-28T00:06:16+09:00)
Maven home: C:\apache-maven\bin\..
Java version: 11.0.2, vendor: Oracle Corporation, runtime: C:\openjdk-11.0.2
Default locale: ko_KR, platform encoding: MS949
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"