프로그래밍/JAVA2022. 6. 7. 11:33
728x90

우리가 흔히 java 라고 부르는 단어는 jre 를 지칭하는 경우가 많습니다.

jre는 java의 가상머신(jvm)을 제공하는 프로그램으로 os 및 하드웨어가 다르더라도 java기반으로 제작된 프로그램을 쉽게 사용할 수 있도록 해주는 프로그램입니다.

 

이 jvm에서 구동되도록 java기반으로 제작되는 프로그램은 소스를 컴파일 하여 실행가능한 상태로 만들어주어야 하는데 이때 사용되는것이 jdk 입니다.(java se 라고 알고 있는 것도 jdk를 지칭합니다.)

 

일반적으로 개발자가 높은 버전의 jdk를 기준으로 작성한 프로그램은 낮은 jre에서 구동되지 않는 경우가 많습니다.

하지만 높은 버전의 jdk가 개발에 편의성을 제공하고 보안문제도 해결되는 경우가 많아 개발자는 높은 버전의 jdk를 사용하여 개발하는것이 유리합니다.

 

이 부분에서 적절한 jdk 버전을 고민해야 하는데 일반적으로 1.8 버전이 현재 많이 사용되는것으로 알고 있습니다.

1.8 버전을 사용하는 이유는 꽤 여러가지가 있지만 크게 보면 유료화 이슈와 tools.jar/ rt.jar 때문으로 생각됩니다.

 

1.8버전 이전에는 오라클에서 제공하는 일반적인 java jre 와 jdk를 사용했습니다.

하지만 오라클에서 1.8 버전(2019년 1월) 이후부터 유료화를 선언하여 무료로 제공되는 open jdk(jre)를 사용하는 경우가 많습니다.

 

오라클 java 유료버전은 

  • Java6 version 45 이후 (6u45~)
  • Java7 version 80 이후 (7u80~)
  • Java8 version 211 이후 (8u211~)
  • Java11이후 버전 모두 (11, 12, 13, 14, 15)

에 해당되므로 이보다 상위버전을 사용하려면 오라클에 라이센스를 취득한 후 사용해야 합니다.

자신이 사용하는 자바버전은 커맨드창(cmd) 에서 java -version 을 입력해보면 확인 할 수 있습니다.

 

라이센스를 취득하여 사용하는 경우에는 해당되지 않지만 라이센스 취득이 어렵거나 고객사에서 open jdk를 사용해달라는 요청을 할 경우 open jdk(무료)를 사용하게 됩니다.

 

일단 open jdk 다운로드 사이트는

https://github.com/ojdkbuild/ojdkbuild

 

GitHub - ojdkbuild/ojdkbuild: Community builds using source code from OpenJDK project

Community builds using source code from OpenJDK project - GitHub - ojdkbuild/ojdkbuild: Community builds using source code from OpenJDK project

github.com

 

open jdk의 공식 페이지는 https://openjdk.java.net/ 이지만 실제 사용할 jdk를 설치버전(msi)으로 다운받으려면 위에 적은 github 에서 msi 파일 형태로 다운로드 받아 설치하는게 용이합니다.(windows os 기준)

 

 

open jdk는 여러종류가 있지만 본인은 위 사이트에서 다운로드 한 jdk를 사용합니다.

jdk는 현재(2022년 06월 기준) 18버전까지 사용되지만 현업에서는 일반적으로 1.8 버전을 많이 사용합니다.

 

1.8 버전이란 java 8 기준이고 18 버전이란 java 18 버전이므로 꽤 버전차이가 많이 나지만 1.8의 경우 패치가 지속적으로 제공되고 있어 큰 문제가 없습니다.

또한 java 9 (1.9) 부터는 tools.jar 와 rt.jar 가 제거되므로 1.8 기준으로 작성된 프로그램을 1.9 이상으로 적용하려면 여러 수정과 고객사 환경(서버에 설치된 자바버전)을 고려해야 합니다.

 

java 1.8 버전을 사용하는 또 다른 이유로는 LTS(long term support)정책도 한몫 하는데 java 버전별로 지원되는 기간이 다르게 책정되어 있고 LTS 버전으로 발표된 버전이 java8 , java11, java17 입니다.

오라클에서 발표된 지원기간은

  • Java 8 : 2030년 12월까지
  • Java 11 : 2026년 9월까지
  • Java 17 : 2029년 9월까지

이고 현재 java 8 버전이 가장 길게 책정되어 있습니다.

이 버전 이외의 버전은 오히려 매우 짧은 지원기간을 갖고 있습니다.

 

open jdk의 경우 오라클 jdk와 호환성이 문제가 될 가능성에 대해서도 고민이 되긴 하지만 현재 현업에서 사용하는 1.8 버전의 경우 호환성 문제는 거의 없는것으로 확인되고 있습니다.

 

open jdk의 경우 여러 제공사이트가 있습니다.

adopt Open JDK가 꽤 많이 사용되는것으로 알고 있지만 본인은 openjdk.java.net 에서 제공하는 open jdk를 사용하고 있습니다.

AdoptOpenJDK https://adoptopenjdk.net/index.html

 

AdoptOpenJDK

AdoptOpenJDK provides prebuilt OpenJDK binaries from a fully open source set of build scripts and infrastructure. Supported platforms include Linux, macOS, Windows, ARM, Solaris, and AIX.

adoptopenjdk.net

 

 

 

Azul Systems Zulu / Zulu Enterprise

 

Red Hat OpenJDK

 

 

 

 

 
728x90
Posted by 내맘대로내뜻대로