목차
Caused by: java.lang.UnsupportedClassVersionError: org/opensearch/index/query/QueryBuilder has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
AWS ECS 에서나 JENKINS 빌드할때 위와 같은 에러가 발생한다.
이 경우 java 버전이 낮아서 지원이 안된다는 의미이다.
https://en.wikipedia.org/wiki/Java_class_file
ECS에서 발생했을경우와 JENKINS에서 발생하느냐에 따라 적용방법이 다릅니다.
ECS의 경우 corretto버전이나 내부에서 설치를 해야하고
jekins의 경우 서버에 설치후 위치를 지정해주면 됩니다.
Amazoncorretto에 java 11 적용
방법은 3가지 혹은 더 있을 것이다.
1. amazoncorretto version 11로 업데이트
2. docker 이미지 생성시 java11 설치
3. 패키지 다운받아서 빌드시 복사해서 적용
이 세가지 중 3번은 번거로워서 살펴보지 않겠다.
3번 대략 이야기하면 java 패키지를 dockerfile에서 run을통하여 다운받아 설치하고 환경변수 적용하면 될것같다.
1. amazoncorretto version 11로 업데이트
amazoncorretto의 경우 open jdk의 버전에 따라 버전이 변경된다.
https://aws.amazon.com/ko/blogs/korea/amazon-corretto-multi-platfom-openjdk-distribution/
그래서 간단히 dockerfile 에 있는 버전만 변경하면 된다.
(from amazoncorreetto:8을 11로 변경하면됩니다.)
FROM amazoncorretto:11
RUN echo $' \
public class Hello { \
public static void main(String[] args) { \
System.out.println("Welcome to Amazon Corretto!"); \
} \
}' > Hello.java
RUN javac Hello.java
CMD ["java", "Hello"]
2. docker 이미지 생성시 java11 설치
RUN 을 이용하여 명령어를 입력하는 방법 입니다.
RUN yum install java-11-amazon-corretto.x86_64
FROM amazoncorretto:8
RUN yum install java-11-amazon-corretto.x86_64
RUN echo $' \
public class Hello { \
public static void main(String[] args) { \
System.out.println("Welcome to Amazon Corretto!"); \
} \
}' > Hello.java
RUN javac Hello.java
CMD ["java", "Hello"]
Jenkins에 java 11 적용
jenkins관리 - Global Tool Configuration 에서
jdk 목록을 보면
여기서 Add JDK 클릭
Oracle Java SE 11+는 상업용 라이센스 없이 비즈니스, 상업용 또는 프로덕션 용도로 사용할 수 없습니다. 라고 나와서
자동 install은 상업용 라이센스가 필요한 모양이다.
그렇기 때문에 따로 설치를 해줘야 합니다.
서버에 java 11 설치
우선 젠킨스가 설치된 서버에 접속합니다.
(docker에 젠킨스가 설치 되어 있을경우 -itu 옵션으로 root로 접속한뒤에 설치합니다. 혹은 docker file에 아래 명령어를 입력합니다.)
ubuntu
sudo apt-get install openjdk-11-jdk
설치경로
/usr/lib/jvm/java-11-openjdk-amd64
amazon-linux
sudo yum install -y java-11-amazon-corretto.x86_64
설치경로
/usr/lib/jvm/java-11-amazon-corretto.x86_64
Jenkins에 설정 적용
설치가 완료되었다면 아까 Global Tool Configuration의 jdk로 돌아갑니다.
Install automatically 옆에 체크를 클릭하여 해제합니다.
그럼 JAVA_HOME 이라고 입력하는 란이 하나 나오는데
NAME 에는 적당한이름
JAVA_HOME에는 설치경로를 적어 주시고 save 하여 저장하면 끝납니다.
Jenkins에서 java 버전 확인
아무 freestyle 프로젝트하나 만들고 빌드에 Add build step - excute shell 에 java -version을 입력하고 저장한뒤 빌드합니다.
java -version
빌드 하고 나서 콘솔출력을 확인하면 11버전이 잘 적용 된것을 확인 하실수 있습니다.
Reference
docker로 amazon corretto 시작
https://docs.aws.amazon.com/ko_kr/corretto/latest/corretto-11-ug/docker-install.html
끝
'CLOUD > AWS' 카테고리의 다른 글
AWS S3 보안구성 ACL, public Access 업데이트 (2023.4) (0) | 2023.02.13 |
---|---|
AWS 자격증 무료 재시험(재응시) 이벤트(aws certificate) pearson vue (2) | 2023.02.10 |
AWS 보안, 자격 증명 및 규정 준수 서비스 (0) | 2023.01.26 |
AWS ALB에 SSL 추가(여러개) 등록하기 (0) | 2023.01.18 |
aws Oracle Data Pump s3 migration (0) | 2023.01.11 |
댓글