[멋쟁이사자처럼부트캠프] 이게 무엇인고..?

~/.zshrc 설정 파일에 경로 오류

[멋쟁이사자처럼부트캠프] 이게 무엇인고..?

요즘 수업을 소홀히 듣는다는 핑계로 공부 내용 대신, 오늘 실습 도중 겪은 재미있는 상황을 기록해 보고자 한다.

일단 사건의 발단으로 나는 zsh 터미널을 사용한다. 엄청 쩌는 스크립트가 있어서다 그게 무엇이냐면 랜덤으로 포켓몬을 뛰어준다. (심지여 이로치도 뜬다. 진짜 재미있다.)

한데 build 도중, Java 경로를 찾지 못하는 대참사가 발생했다.

./gradlew clean build         

ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/java-21-openjdk-amd64/bin/java

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

분명 zsh 설정 파일에 JDK 경로를 정확히 입력했는데 말이다.

일단 급한대로 bash로 했더니 아주 잘 된다(정말 어리둥절하다.)

./gradlew clean build
Starting a Gradle Daemon (subsequent builds will be faster)
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended

BUILD SUCCESSFUL in 16s
8 actionable tasks: 8 executed

눈을 씻고 찾아봐도 설정상 오류는 없는데, 한쪽은 안 되고 한쪽은 되는 기묘한 상황이다. 심지여 bash는 JDK 설정도 없다.

일단 zsh을 포기할수 없으니 찾고 고쳐야 한다.

경로을 다시 확인해보자

 echo $PATH
/home/qip/.nvm/versions/node/v24.15.0/bin:/home/qip/miniconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/qip/.local/share/JetBrains/Toolbox/scripts:/usr/lib/jvm/java-21-openjdk-amd64/bin:/usr/lib/jvm/java-21-openjdk-amd64/bin/java/bin

야무진 JDK 경로 고봉밥을 떠먹여 준다. 이렇게 뜨면 안되는데 분명히 잘못된 경로다.

검색을 해봅시다~

어이쿠 어지러운 공식 문서

JRE Installation for Linux Platforms
This page describes JRE for Linux system requirements and gives installation instructions for several JRE-Linux combinations.

아무리 봐도 모르겠다.

우분투 java 설치하는 방법을 알아봅시다.
이번 글에서는 우분투에 java를 설치하는 방법을 알아보겠습니다. 여기에 언급된 명령어들은 추후에 다시 다뤄볼 기회가 있을 겁니다. 여기에서는 그냥 간단하게만 훑고 넘어가도록 하겠습니다. 먼저, apt-cache search 명령어와 grep를 이용해서, java 패턴이 있는 패키지 중에서 openjdk-8 패턴이 있는 것을 검색하였습니다. 그랬더니 이런 것들이 쭉 나오게 되었어요. 저는 처음에 openjdk-8-jre-headless를 설치해서, 왜 javac가 설치가 안 되었지? 하고 당황하였습니다. 당황하지 마시고, openjdk-8-jdk-headless를 설치하시면 됩니다. jre는 자바 런타임만 설치하게 됩니다. apt-get install openjdk-8-jdk-headless 명령어를 입…

오우 감사합니다. 선배님

경로가 틀려있네요 바꿔줍시다. 그리고 경로에 /bin 까지 포함되어 있으니 이것도 수정하겠습니다.

export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

다시 build.

오! 성공!!!

bash는 빌드에 성공했을까?

  • bash는 시스템 기본 경로 사용

zsh는 왜 build가 터졌을까?

  • ~/.zshrc 설정 파일에 오타 섞인 경로 우선

💡
결론 내 잘못입니다.