2022-10-31 기준으로 업데이트해뒀습니다.
- AdoptoOpenJDK관리 주체 변경에 따른 URL변경 등의 내용 업데이트
- 참고로 https://github.com/adoptium/temurin11-binaries/releases 에서 필요한 환경에 맞춰서 최신 버전 다운로드
- 예) 리눅스 64bit 핫스팟이라면 OpenJDK11U-jdk_x64_linux_hotspot_11.0.17_8.tar.gz 다운로드
커맨드 예)
#다운로드
wget 'https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.17%2B8/OpenJDK11U-jdk_x64_linux_hotspot_11.0.17_8.tar.gz' -O ~/apps/OpenJDK11U-jdk_x64_linux_hotspot_11.0.17_8.tar.gz
#압축해제
cd ~/apps && tar -xzf OpenJDK11U-jdk_x64_linux_hotspot_11.0.17_8.tar.gz && rm -f OpenJDK11U-jdk_x64_linux_hotspot_11.0.17_8.tar.gz
#심볼릭링크(필요시)
cd ~/apps && ln -s jdk-11.0.7+10 jdk_11
#DNS TTL수정(10초로, 어플리케이션마다 틀려야할 수 있음)
echo 'networkaddress.cache.ttl=10' >> ~/apps/jdk-11.0.17+8/conf/security/java.security
openjdk 11설치 방법 및 기본 설정
-
유저 home디렉토리/apps 하위에 설치한다는 전제
[설치]
#JDK 다운로드 및 설치(가능하면 adoptopen JDK판 사용)
-
adoptopenJDK 배포판( https://adoptopenjdk.net/releases.html?variant=openjdk11&jvmVariant=hotspot 에서 최신버전 확인 후 설치. 리눅스서버를 예로들면 OS는 Linux, Architecture X64) -
명령어 예) -
wget 'https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_x64_linux_hotspot_11.0.7_10.tar.gz' -O ~/apps/OpenJDK11U-jdk_x64_linux_hotspot_11.0.7_10.tar.gz -
cd ~/apps && tar -xzf OpenJDK11U-jdk_x64_linux_hotspot_11.0.7_10.tar.gz && rm -f OpenJDK11U-jdk_x64_linux_hotspot_11.0.7_10.tar.gz && ln -s jdk-11.0.7+10 jdk_11 -
오라클 배포판(약 6개월만 패치 지원) -
wget 'https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz' -O ~/apps/openjdk-11.0.2_linux-x64_bin.tar.gz -
cd ~/apps && tar -xzf openjdk-11.0.2_linux-x64_bin.tar.gz && rm -f openjdk-11.0.2_linux-x64_bin.tar.gz && ln -s jdk-11.0.2 jdk_11
[기본설정(튜닝)]
1. JAVA DNS TTL 수정
echo 'networkaddress.cache.ttl=10' >> ~/apps/jdk_11/conf/security/java.security
# 환경변수 추가
echo 'export JAVA_11_HOME=~/apps/jdk_11' >> ~/.bashrc
source ~/.bashrc
#확인 방법
$JAVA_11_HOME/bin/java -version
=> java 11버전으로 나오면 됨
2. 난수 생성시 필요한 엔트로피 고갈되어 발생하는 문제 처리
원인 : java.security.SecureRandom 클래스는 Linux에서는 기본적으로 /dev/random 을 이용해서 난수를 생성하는데 필요한 엔트로피가 고갈되면 램덤값을 생성하는 로직이 대기하게 되고, 성능에 문제가 생길수 있음
해결 방법
- java 어플리케이션 시작시 -Djava.security.egd=file:/dev/./urandom 옵션을 주고 실행해서 해결
'JAVA > Java 일반' 카테고리의 다른 글
java(with spring)에서 MultipartFile를 통한 웹에서 사설 인증키를 읽어서 String으로 변환하는 샘플 소스 (0) | 2020.04.28 |
---|---|
IMAP 이메일을 가져오는 샘플 소스 (0) | 2019.09.24 |
apache http client의 타임아웃 관련(기본 값 등) - 버전마다 틀릴 수 있음 (0) | 2019.02.08 |
Java 변수 null처리에 따른 GC 테스트 샘플 (0) | 2018.06.18 |
JSP파일에서 JSTL의 html변경 후 남은 whitespace를 없애는 프로그램 Java 버전 (0) | 2017.07.12 |