본문 바로가기
ProTips

keytool 에러 해결하기 - JDK 설치 (openjdk)

by codeflow 2022. 10. 11.

TL;DR keytool로 인증서 키 값을 생성하려고 할 때 에러가 난다면, JDK 설치 여부를 확인하고 없다면 설치해주자

 

Keytool 에러

Firebase에서 Android 앱을 등록할 때 디버그 인증서의 SHA-1 해시값이 필요한 경우가 있습니다. 이때 안내되는 클라이언트 인증에 대한 구글 개발자 페이지를 읽어보니 인증서 SHA-1 fingerprint를 얻기 위해선 Java에서 제공하는 keytool 유틸리티를 실행하면 된다고 합니다. 확인한 keytool 생성 커맨드를 그대로 터미널에 입력해주었더니 "The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java." 라는 에러 메시지가 뜹니다. 에러 메시지 요청사항대로 자바 런타임 환경을 이용하기 위해 JDK를 설치해 줍시다.

Mac에서 openjdk 설치하기

맥OS에서 JDK를 설치할 때 가장 간편한 방법은 홈브루(Homebrew)를 통해 OpenJDK를 설치해주는 방법입니다. 홈브루가 설치되어 있지 않다면 먼저 설치해 준 뒤, 터미널에서 brew install openjdk 커맨드를 입력해 OpenJDK를 설치합니다.

설치가 다 되면, openjdk를 PATH에 추가할 수 있게 echo 'export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"' >> ~/.zshrc 커맨드를 실행하라는 안내가 나옵니다. 저는 환경 변수 설정을 .zprofile에서 하고 있기 때문에 PATH 설정 파일을 .zprofile로 바꿔주었습니다. (echo 'export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"' >> ~/.zprofile) 그 다음 source ~/.zprofile 커맨드로 설정을 적용한 뒤 java --version으로 확인해보니 java가 잘 설치되어 있습니다.

이제 다시 원래 시도했던 keytool 커맨드인 keytool -list -v \ -alias androiddebugkey -keystore ~/.android/debug.keystore를 입력하면 키 저장소 비밀번호를 입력하라는 메시지가 뜹니다. 구글 개발자 페이지 안내사항대로 android를 입력했더니 원하던 fingerprint가 출력됩니다! 🙌

윈도우용 설정

윈도우의 경우도 순서는 동일합니다. 자바 설치 여부 확인 ->  미설치시 JDK 설치 -> JDK 환경 변수 설정 -> keytool로 debug 인증서 SHA-1 해시값 얻기 순으로 진행하면 됩니다. 

 

자바 설치 여부 확인 후 JDK 설치

자바 설치 여부는 명령 프롬프트에서 java -version을 쳐서 버전 정보가 뜨는지 확인해보면 됩니다. (명령 프롬프트는 Windows + r 키를 입력해 나오는 실행창에 cmd를 쳐서 진입할 수 있습니다.) 버전 정보가 나오지 않는다면, 오라클 JDK 윈도우 설치 페이지에서 JDK 최신 버전을 다운로드 받고 설치하면 됩니다. (여러 버전 중 고르기 어려울 때는 LTS가 붙은 최신 버전을 선택하면 됩니다. LTS는 Long Term Support 약자로 정식 버전을 의미한다고 생각해주세요.) 설치할 때 설정한 JDK 경로를 환경 변수 설정에 사용합니다.

 

JDK 환경 변수 설정

JDK를 설치 경로 밖에서도 사용하기 위해 환경 변수에 등록해 줍니다. 일반적으로 JDK 설치 경로를 변수로 잡고 재사용하기 위해 JAVA_HOME이라는 변수를 새로 만들고 값으로 JDK 설치 경로를 넣어줍니다. JDK 설치 시 경로를 수정하지 않았다면 보통 C:\Program Files\Java\jdk[버전명] 경로에 설치됩니다. JDK 설치 경로를 확인하고 싶다면 명령 프롬프트에서 C 드라이브 기준으로 where /R C:\ javac.exe이라고 검색해보면 됩니다. 이렇게 확인한 경로를 JAVA_HOME 변수가 값에 넣어준 뒤 Path 변수를 편집해 최상단에 %JAVA_HOME%₩bin을 넣어줍니다. 명령 프롬프트에서 다시 java -version을 입력해보면 버전 정보가 뜨는 걸 확인할 수 있습니다.

 

Keytool로 Debug 인증서 SHA-1 해시값 얻기

keytool이 잘 실행되는 상태이기 때문에 keytool 커맨드로 SHA-1 해시값을 얻을 수 있습니다.

keytool -list -v \ -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

댓글