Chapter 4. JVM 운영
!! 경고
2016년 2월 26일 새벽 2:38 이전에 JVM 환경을 구성하신 분들은 "<6.2 2016년 2월 26일 이전 환경 migration>"를 꼭 확인 하십시오.
이 문서는 안녕 리눅스의 JVM 환경에 대해서 기술을 합니다.
안녕 리눅스는 기본으로 openJDK 8과 tomcat 8을 지원합니다. 또한, Oracle JRE/JDK 8 사용을 원하시는 분들을 위하여 Oracle JRE/JDK 8환경 구축에 대한 지 원을 합니다. Oracle JDK/JRE에 대해서는 <5. Oracle JDK> 항목을 참고 하십시오.
JDK 6 사용시, CentOS에서 java-1.6.0-openjdk package를 지원합니다만, 권장 하지 않습니다. openjdk는 1.7.0 부터 Oracle JDK와 대등한 수준의 API를 지원합니다. (대등한 성능을 의미하는 것이 아니라 API 대응을 의미이며, 안녕 3에서 oracle JDK가 기본이 아니라 openJDK를 기본으로 한 이유 입니다.) 그러므로 JDK 6 환경은 Oracle JDK를 받아서 직접 구성하십시오.
Oracle JDK/JRE 의 경우 6/7 버전은 lifetime이 종료 되었으므로, JDK 8로의 이전을 고려하시는 것을 권장 합니다.
현재 안녕 리눅스에서 제공하는 JVM 관련 패키지는 다음과 같으며, 이 외의 패키지들은 CentOS의 package를 그대로 사용합니다.
안녕 JVM 환경과 CentOS 환경의 차이는 다음과 같습니다.
- 1.X dependency가 분리 되었습니다.
- 1.java-1.8.0-openjdk-headless package가 기본 java package 입니다.
- "
yum install java
" 설치시에 기존 java-1.8.0-openjdk 가 설치되지 않고 java-1.8.0-openjdk-headless package가 설치 된다는 의미입니다.
- 2.java-1.8.0-devel-gui package가 새로 추가 되었습니다.
- 2.SDK 환경이 기본 1.7.0에서 1.8.0으로 업데이트 되었습니다.
- CentOS에서 "
yum install java-devel
" 설치 시에, java-1.7.0-openjdk package가 설치 되던 것이 안녕 리눅스에서는 java-1.8.0-openjdk package들이 설치 됩니다.
- 3.안녕 리눅스의 openjdk-1.8.0 package들은 CentOS에서 제공하는 openjdk-1.8.0 rpm package를 풀어서 X dependency 의존성을 분리하고, 기본 패키지(java)를 headless package로 변경한 것입니다. 즉, binary와 jar 파일은 CentOS의 package와 동일 합니다.
- 4.tomcat version이 8로 업그레이드 되었습니다.
- 5.안녕 리눅스에서 지원하는 Oracle JRE/JDK rpm package에 대한 사항이 javapackages-tools package에 반영이 되었습니다.
- 6.java-1.7.0 package와 javav-1.6.0 package는 변경 사항이 없습니다. (X 의존성이 그대로 있습니다.)
안녕 리눅스의 java-1.8.0-openjdk을 사용을 원하지 않는다면 /etc/yum.repos.d/AnNyung.repo의 AN:base repository에서 java-1.8.0-openjdk를 exclude 시키십시오.
[[email protected] ~]$ cat /etc/yum.repos.d/AnNyung.repo
.. 상략 ..
[AN:base]
name=AnNyung $annyungver Base Repository
mirrorlist=http://annyung.oops.org/mirror.php?release=$annyungver&arch=$basearch&repo=base
#baseurl=http://mirror.oops.org/pub/AnNyung/$annyungver/base/$basearch
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AnNyung-$annyungver
exclude=java-1.8.0-openjdk*
.. 하략 ..
현재 http://css-validator.kldp.org/ 와 http://validator.kldp.org 의 HTML5 checker(NU)가 Oracle JDK 8 / tomcat 8 환경에서 안녕 리눅스 JVM 환경 (java-1.8.0-openjdk / tomcat 8) 으로 변경되어 운영 중입니다.
- 1.JRE 설치[[email protected] ~]$ yum install java // X dependency가 필요 없을 경우[[email protected] ~]$ yum install java-1.8.0-openjdk // X dependency가 필요 할 경우[[email protected] ~]$ yum install java-1.7.0-openjdk-headless // No X dependency[[email protected] ~]$ yum install java-1.7.0-openjdk // X dependency
- 2.JDK 설치[[email protected] ~]$ yum install java-devel // X dependency가 필요 없을 경우[[email protected] ~]$ yum install java-1.8.0-openjdk-devel-gui // X dependency가 필요 할 경우[[email protected] ~]$ yum install java-1.7.0-openjdk-devel // 무조건 X dependency가 있음
- 3.설치 후 JAVA 환경 변수[[email protected] ~]$ cat test.sh#!/bin/bash. /usr/share/java-utils/java-functionsset_jvmset_javacmdset_jvm_dirsecho "JAVACMD : $JAVACMD"echoecho "JAVA_HOME : $JAVA_HOME"echo "JAVA_BASE : $JAVA_BASE"echoecho "JAVA_LIBDIR : $JAVA_LIBDIR"echo "JAVA_LIB : $JAVA_LIB"echoecho "JNI_LIBDIR : $JNI_LIBDIR"echo "JNI_LIB : $JNI_LIB"echoecho "JVM_ROOT : $JVM_ROOT"echo "JVM_LIBDIR : $JVM_LIBDIR"echoecho "CLASSPATH : $CLASSPATH"echo// for tools.jar. find_jar searches JVM_LIBDIR values.JVM_LIBDIR+=":${JAVA_HOME}/lib"#CLASSPATH=$(find_jar commons-logging.jar commons-collections.jar servlet-api.jar tools.jar)CLASSPATH+=":$(find_jar servlet-api.jar)"if [ $? -ne 0 ]; thenecho "Can't find some jar files"exit 1fiecho "CLASSPATH : $CLASSPATH"echoexit 0[[email protected] ~]$ bash test.shJAVACMD : /usr/lib/jvm/jre/bin/javaJAVA_HOME : /usr/lib/jvm/jreJAVA_BASE : /usr/lib/jvmJAVA_LIBDIR : /usr/share/javaJAVA_LIB : /usr/share/javaJNI_LIBDIR : /usr/lib/javaJNI_LIB : /usr/lib/javaJVM_ROOT : /usr/lib/jvmJVM_LIBDIR : /usr/lib/jvm-exports/jreCLASSPATH : /usr/share/java:/usr/lib/javaCLASSPATH : /usr/share/java:/usr/lib/java:/usr/share/java/servlet.jar[[email protected] ~]$
안녕 리눅스의 TOMCAT은 버전만 8로 업그레이드 되었으며, 환경 구성은 CentOS와 동일 합니다.
- 1.tomcat 설치[[email protected] ~]$ yum install tomcat
- 2.설정 파일 : /etc/tomcat[[email protected] ~]$ ls -l /etc/tomcatdrwxrwxr-x 3 root tomcat 22 2월 26 05:02 Catalina/-rw-rw-r-- 1 tomcat tomcat 12374 2월 25 17:24 catalina.policy-rw-rw-r-- 1 tomcat tomcat 7106 2월 25 17:24 catalina.properties-rw-rw-r-- 1 tomcat tomcat 1577 2월 25 17:24 context.xml-rw-rw-r-- 1 tomcat tomcat 3387 2월 25 17:24 logging.properties-rw-rw-r-- 1 tomcat tomcat 6458 2월 25 17:24 server.xml-rw-rw---- 1 tomcat tomcat 2212 2