이 글은 Jim Mckeeth가 작성한 엠바카데로 블로그 글을 번역(및 일부의역)한 것입니다


7652.AdoptOpenJDK-DelphiAndroid.png-700x0.png

 

여러분들이 모르실 수도 있지만, 자바에는 다양한 제품과 버전들이 있습니다. 오라클이 Sun Microsystems를 인수한 후, 그들은 자바 상표의 공식 소유주가 되었고 주요 "공식" 자바 배포처가 되었습니다.

우선 저는 변호사도 아니고 자바 개발자도 아닙니다.  자바 개발 및 라이센싱과 관련된 여러 가지 복잡한 문제에 대한 개괄적인 개요입니다. 저의 목표는 앞으로 나아가고 성공하기에 충분한 정보를 제공하는 것이지만 추가 정보가 필요한 경우 추가 조사를 수행하고 변호사와 상담하는 것이 좋습니다. 중요한 점에 대한 세부 사항을 놓칠 수 있기때문입니다.

자바는 다음과 같은 부분으로 구성됩니다.

  •  JVM : 자바 가상 머신은 모든 자바 애플릿을 실행하는 가상 머신입니다. 자바 애플릿은 일반적으로 JAR 파일에 자바 바이트 코드로 배포됩니다. 자바 바이트 코드는 실제 컴퓨터에서 기본적으로 실행되지 않습니다. 대신 JVM에서 실행됩니다. JVM은 자바 바이트 코드를 기본 기계 코드로 변환하는 JIT (Just-In-Time) 컴파일러입니다.

     - 인기있는 JVM의 두 가지는 핫스팟 (오라클 JDK에서 사용하는 공식 JVM)과 OpenJ9입니다.

     - 기술적으로 안드로이드에는 JVM이 없습니다. 대신 자바 바이트 코드가 Dalvik 바이트 코드로 변환되어 DVM          (Dalvik Virtual Machine)에서 실행되거나 ART(Android Runtime)에 의해 컴파일됩니다. 둘 다 .dex 파일을 사용        하지만 ART는 바이트 코드를 .elf (실행 및 링크 가능한 형식)파일로 변환합니다. 이 글은 주로 델파이로  안드          로이드 앱을 빌드하기위한 자바 데스크탑 측면에 초점을 맞추고 있지만 명확성을 위해 이 부분을 추가하고 싶        었습니다.

  • JRE : JRE (Java Runtime Environment)에는 JVM과 함께 자바 애플릿을 실행하는 데 필요한 기본 라이브러리가 포함되어 있습니다. 애플릿 및 기타 유틸리티를 실행하는 Java.exe 및 Javaw.exe가 포함됩니다.
  • JDK : 자바 개발 Kit 또는 자바 개발 용 SDK. JDK는 JRE의 상위 집합입니다. 이것은 자바(및 안드로이드) 애플리케이션을 빌드하는데 사용하는 반면 자바 애플릿을 실행하는 데 필요한 모든 것을 제공합니다. 여기에는 KeyTool.exe 및 JarSigner.exe와 같은 여러 유틸리티가 포함되어 있습니다.
  • 오라클에서 릴리스 한 자바 플랫폼에는 자바 SE (표준 에디션), 엔터프라이즈 에디션 (Java EE) 및 마이크로 에디션(Java ME)의 세 가지 변형이 있습니다. 이 게시물과 대부분의 유스 케이스에는 표준 에디션이 포함됩니다.

흥미로운 점은 자바 표준 에디션(SE) 플랫폼의 무료 오픈 소스 구현인 OpenJDK를 사용하는 것입니다. 버전 7부터 자바 SE의 공식 참조 구현입니다. 소스 구현은 링크 예외를 제외하고 GNU General Public License 버전 2에 따라 라이센스가 부여되었습니다. [위키피디아] 크롬이 오픈 소스 Chromium 프로젝트를 기반으로하는 방식과 유사하게 자바 SE는 OpenJDK를 기반으로합니다.

모든 사용자는 OpenJDK 소스 파일을 다운로드하여 바이너리 빌드를 만들 수 있습니다. 이를 수행하는 여러 조직이 있으며 각 조직에는 자체 라이센스, 지원 등이 포함된 컴포넌트가 있습니다. 다음은 몇 가지 OpenJDK 소스의 이진 배포입니다.

빌드 Long Term
Support
Permissive
License
Pure

Commercial

Support

AdoptOpenJDK / 
JClarity / IBM Java SDK
Yes Yes 선택 Yes
Alibaba Dragonwell Yes Yes No Yes
Amazon Corretto Yes Yes No No
Azul Zulu Yes Yes No Yes
BellSoft Liberica JDK Yes Yes No Yes
ojdkbuild Yes Yes Yes No
Oracle Java SE Yes No No Yes
Oracle OpenJDK No Yes Yes No
Red Hat OpenJDK Yes Yes Yes No
Red Hat for Windows Yes Yes No Yes
SAP SapMachine Yes Yes No No
소스: https://en.wikipedia.org/wiki/OpenJDK         

 

 

오라클은 직접 OpenJDK 빌드를 제공하지만 오라클에서 직접 빌드하는 것은 장기적인 지원이나 상업적 지원을 포함하지 않습니다. 이를 위해 오라클은 허용 라이센스가 없는 오라클 SE로 전환하기를 원합니다 (오라클은 최근 표준 에디션 JDK의 라이센스를 상업적 사용에 대한 연간 요금을 청구하도록 변경했습니다). 따라서 OpenJDK 소스에는 허용

라이센스가 있지만 오라클의 바이너리 배포판에는 동일한 라이센스가 없습니다.

 

바로 여기에서 AdaptOpenJDK(및 기타)가 도입됩니다.오픈 소스 OpenJDK 소스 파일을 가져와서 장기 지원(이전 버전에 대한 업데이트 및 수정), 허용 라이센스 및 상업적 지원을 포함한 바이너리 배포를 제공합니다. AdoptOpenJDK는

커뮤니티와 IBM, GoDaddy, Microsoft 및 Red Hat을 포함한 여러 대기업에서 유지 보수 및 지원합니다.

 

RAD Studio는 자바에 직접 의존하지 않지만 안드로이드 SDK를 사용하여 안드로이드를 타겟으로하는 경우 자바를 사용하고 있습니다. 현재 RAD Studio 설치 프로그램은 표준 오라클 JDK를 아직 설치하지 않은 경우 설치할 수 있는 옵션을 제공합니다. 향후 (10.4.x 기간) 엠바카데로는 AdoptOpenJDK를 설치하기 위해 기본 옵션을 변경할

계획입니다.

 

여러분이 전적으로 어떤  JDK 및 JRE을 사용할 것인지 결정합니다. 이 글에서는 HotSpot JRE를 사용하여 AdoptOpenJDK로 전환하는 과정을 안내합니다 (HotSpot은 오라클 JDK에서 사용하는 공식 JVM이지만 다른 것을 선택할 수 있습니다).

 

시작하기 전에

 

오라클의 JRE 또는 JDK가 이미 설치되어있는 경우 제거하실 수도 있습니다. 컴퓨터에 특별히 의존하는 다른 소프트웨어가 없고 델파이와 함께 안드로이드 개발용으로 만 설치했다면 제거하셔도 됩니다. 업데이트 방식으로 인해 여러 버전이 설치되어 있음을 발견 할 수 있습니다.

 

설치

 

https://adoptopenjdk.net/을 방문하고 윈도우 컴퓨터 인 경우 기본적으로 원하는 다운로드로 설정해야합니다. 예, 새 버전이 있지만 버전 8이 필요합니다. 버전 8은 안드로이드 개발을 포함하여 대부분의 사용 사례에서 가장 많이 사용되는 버전이며 서로 다른 버전은 호환되지 않습니다.

 

sdk 설치.png

 

32 비트 버전의 윈도우를 사용하는 경우 실제로 64 비트 플랫폼으로 업그레이드해야합니다. 64비트로 업그레이드후  다시 돌아오십시오. 64 비트 윈도우에는 32 비트 버전을 설치할 필요가 없습니다. 다른 컴퓨터에서 웹 사이트를 방문하는 경우 다른 플랫폼/릴리스 페이지로 이동하여 필요한 다운로드를 찾을 수 있습니다. 윈도우 64 용 JRE뿐만 아니라 전체 JDK (JRE 포함)가 필요합니다.

 

sdk 설치2.png

 

설치하는 동안 GNU 일반 공식 라이센스에 동의합니다. 이것은 JDK 전용이며 개발 한 프로젝트에 영향을

미치지 않습니다 (확실히 하기 위해 변호사와 상담하거나 라이센스를 직접 읽어 보십시오). 설치 프로그램에서

JAVA_HOME 환경 변수를 설정하는것은 선택 사항으로 특별히 설정하지 않으면 기본값으로 지정됩니다.

 

 

sdk 설치3.png

 

이제는 델파이/RAD Studio IDE에서 설정을 업데이트합니다. 도구 → 옵션 → 배포 → SDK 관리자로 이동 한 다음 안드로이드 SDK (32 또는 64 비트) 중 하나를 선택하고 아래 그림과 같이 Java 탭으로 이동하십시오.

 

sdk 설치4.png

 

오라클 자바 SE JDK를 설치한 상태로 두면 이전 JDK가 여전히 있기 때문에 노란색 삼각형이 표시되지 않습니다. 그런 다음 줄임표(...) 찾아보기 단추를 사용하여 AdoptOpenJDK를 설치한 경로로 변경하십시오.모든 안드로이드 SDK 항목을 변경하십시오.

 

sdk 설치5.png

 

 

설정 후에는 이전과의 변경 사항을 알 수 없습니다. 그냥 그대로 작동합니다. 오라클 SE JDK 및 AdoptOpenJDK는 기능이 동일한 소스 코드를 기반으로합니다.

 

대체 설치

 

AdoptOpenJDK를 설치하고 업데이트하는 가장 좋은 방법은  Chocolatey 윈도우 패키지 관리자를 사용하는 것입니다.

초콜릿.png

 

1. 관리자 권한으로 PowerShell 창을 엽니다.

 

2. Chocolatey를 설치하려면 다음을 실행하십시오.

 

  Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [Syste    m.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString   ('https://chocolatey.org/install.ps1'))

 

3. 그런 다음 AdoptOpenJDK 8을 설치하십시오.

     choco install adoptopenjdk8

 

4. 나중에 업데이트하려는 경우 관리자 권한 명령 프롬프트에서 다음을 실행하십시오.

    choco update adoptopenjdk8 

 

저는 Chocolaty 패키지 관리자의 팬입니다 (Pro 서브스크립션을 가지고 있습니다).  사용해 보시면  매우 유용하다고 느끼실것입니다.

 

 

10.4 무료 평가판으로 지금 경험해보세요!   [전체보기] 10.4 새기능들!

 

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 14355
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13021
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 15529
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 21048
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 22296
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 17929
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 38219
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 173732
1223 2020년 5월 GM 업데이트 - 여러분의 비즈니스에 길을 열어주세요! 관리자 2020.05.26 314
» 델파이 안드로이드 개발을 위해 OpenJDK 채택 file 김원경 2020.05.25 886
1221 엠바카데로 오픈 소스 프로젝트 관리자 2020.05.25 697
1220 [10.4 시드니 신기능] 겟잇 패키지 매니저(GetIt Package Manager) 개선 험프리 2020.05.21 593
1219 [10.4 시드니 신기능] 컨트롤 개별 VCL 스타일 적용(Per-Control Style) 적용 험프리 2020.05.19 918
1218 [10.4 시드니 신기능] 새로운 VCL TEdgeBrowser 컴포넌트 험프리 2020.05.18 22871
1217 [10.4] 커스텀 매니지드 레코드(Custom Managed Records) 험프리 2020.05.14 1104
1216 [고객 사례- 솔루션, 델파이] Beyond Compare - 데이터, 시스템 비교/병합/관리 프로그램 관리자 2020.05.14 737
1215 델파이, 25년의 혁신 - 버전 1부터 10.3까지 버전별 핵심 기능 [2] 관리자 2020.05.12 2539
1214 [고객 사례- 솔루션, 델파이] AlignMix - 시각화된 세일즈 관리 도구 관리자 2020.05.12 364
1213 [10.4 시드니 신기능] 다시 태어난 '코드 인사이트' [2] file 험프리 2020.05.08 1660
1212 [발표자료] 20200429 델파이 Push 메시지 전송 시스템 구현 방법 with 구글 Firebase [3] file 관리자 2020.05.04 1016
1211 헬스케어 분야에서의 델파이 - 코로나에 맞서며 file 김원경 2020.04.29 602
1210 [고객 사례- 의료, 델파이] COVID-19 격리 대상자 상태 관리 앱 관리자 2020.04.28 643
1209 이 달의 기술자료 - 2020년 05월 file 험프리 2020.04.24 349
1208 [사례 소개] 데브기어 마이그레이션 유상 컨설팅 사례 험프리 2020.04.22 528
1207 인터베이스와 FireDac에서 배열필드 사용하기 file 김원경 2020.04.16 405
1206 인터베이스, FireDAC 및 TEMSDataSetResource를 사용하여 RAD 서버에서 자동 증가 필드를 생성하는 방법 file 김원경 2020.04.16 409
1205 델파이용 벡터 컨테이너 file 김원경 2020.04.14 750
1204 [프로그래밍 애피타이저] 개발이 처음이거나 비 전공자 분들을 위한 가장 첫 번째 STEP! 관리자 2020.04.13 2439