SW 개발

[JAVA / Maven] Maven 컴파일시 javac 버젼 문제 해결

. . . 2014. 6. 25. 09:19
반응형
  • 20191001 마크다운 변환완료

javac 버젼 문제발생

Maven 으로 컴파일시 다음과 같은 에러가 날때가 있다.

[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
Failure executing javac, but could not parse the error:
javac: invalid target release: 1.7
Usage: javac <options> <source files>
use -help for a list of possible options

위와같은 에러가 난다면 pom.xml 에 정의된 version 과 지금설치되어있는 javacversion 이 틀려서 나는 문제인것이다.

문제해결

JAVAC 의 버젼확인

다음과 같은 명령어로 javac 의 버젼을 확인한다.

$ javac -version
javac 1.6.0_27

위의 에러의 경우 1.7 버젼이 필요하다고하니... 1.7 이 아닐경우 1.7로 업데이트 해야한다.

JAVAC 1.7 버젼 업데이트방법

다음과 같은 명령어로 java 를 업데이트한다.

sudo apt-get install openjdk-7-jdk

이제 시스템에 업데이트 된 JAVA 를 적용시킨다,.

sudo update-alternatives --config javac
대체 항목 javac에 대해 (/usr/bin/javac 제공) 2개 선택이 있습니다.

  선택       경로                                      우선순  상태
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-openjdk-i386/bin/javac   1061      자동 모드
  1            /usr/lib/jvm/java-6-openjdk-i386/bin/javac   1061      수동 모드
  2            /usr/lib/jvm/java-7-openjdk-i386/bin/javac   1051      수동 모드

기본 사항[*]을 사용하려면 엔터, 다른 것을 사용하려면 번호를 입력하십시오: 2
대체 항목 javac에 대해 (/usr/bin/javac 제공) 2개 선택이 있습니다.

  선택       경로                                      우선순  상태
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-openjdk-i386/bin/javac   1061      자동 모드
  1            /usr/lib/jvm/java-6-openjdk-i386/bin/javac   1061      수동 모드
  2            /usr/lib/jvm/java-7-openjdk-i386/bin/javac   1051      수동 모드

기본 사항[*]을 사용하려면 엔터, 다른 것을 사용하려면 번호를 입력하십시오: 2
update-alternatives: /usr/lib/jvm/java-7-openjdk-i386/bin/javac 사용해서 수동 모드에서 /usr/bin/javac javac) 제공.

위에서 java 버젼을 7 로 바꾼다음에 javac 의 버젼을 확인해보면..

$ javac -version
javac 1.7.0_55

1.7 로 바뀐것을 알수있다.

주의사항

만약 /usr/bin/javac 를 강제로 링크를 바꿀경우...

라이브러리나 몇가지 path 등등이 꼬여서 제대로 컴파일이 되지 않으니 반드시 update-alternatives --config javac 명령어로 버젼을 바꾸는것을 추천한다.

반응형