[MAC] STS3 실행 오류 / 환경 변수 설정 /JDK / Terminal /The JVM share library does not contain the JNI_CreateJavaVM symbol.
STS3를 설치하고 실행을 하려는데 오류창이 떠서 엄청난 구글링 끝에 여러 방법을 시도해보고 두시간 만에 해결을 했다..
대충 보고선 JVM 파일 어쩌구..경로 뭐가 잘못됐나.. jdk11..? 자바 버전이 잘못됐나 생각을 해서 정말 이것 저것 다 건드려봤다.
가장 큰 원인은 환경 변수 설정을 안 해놓았던 것과 자바를 ARM JDK를 사용했던 것이다.
1.자바 환경 변수 설정
1.설치된 jdk 버전 확인
우선 터미널을 켠 뒤
java -version
javac -version
이 두 가지를 입력했을 때 하나라도 뜨지 않는다면 환경 변수 설정이 제대로 안 된 것일거다..(아마...)
cd /Library/Java/JavaVirtualMachines
ls
cd를 이용하여 작업 디렉토리를 자바 경로 파일 위치로 이동한 뒤
ls로 컴퓨터에 설치되어 있는 jdk 목록을 보고 버전을 확인해준다.
jdk-11이 설치되어 있는 것을 확인 할 수 있고, 설치된 버전은 여러개가 있을 수 있다.
2.vi 에디터로 bash_profile 수정
cd /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
vi ~/.bash_profile
이 두 줄을 터미널에 차례대로 입력하여 vi 에디터를 열 수 있다.
jdk-11.jdk 부분에는 본인의 자바 버전을 쓰면 된다.
vi에디터를 열면 이런 화면이 뜨는데 초기에는 위에 아무것도 써있지 않을 거다.
vi에디터를 열면 읽기모드로 열리기 때문에 i를 입력하여 INSERT 모드로 전환해준다.
위 사진을 보면 파일 경로를 따로 써줬지만 아래처럼 한 번에 입력하여 export 해줘도 된다.
마찬가지로 jdk-11.jdk에는 본인의 자바 버전을 입력해주면 된다.
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
export PATH=${PATH}: $JAVA_HOME/bin
입력을 완료한 뒤 esc , :wq 를 순서대로 입력하면 저장이 되며 vi에디터가 종료된다.
3.환경변수 적용하기
source ~/.bash_profile
echo $PATH
source ~/.bash_profile을 입력하여 수정사항을 적용한 뒤,
echo $PATH를 입력하여 정상적으로 적용되었는지 확인해준다.
java -version과 javac -version 을 입력했을 때 둘 다 잘 출력이 된다면 환경 변수 설정이 올바르게 된 것이다.
터미널 재실행시 source ~/.bash_profile 재입력해야하는 문제 해결법
vi에디터로 환경변수를 설정해주고 나서도 문제가 생겼었는데
source ~/.bash_profile을 입력하고 터미널을 재실행 한 뒤 $echo $PATH 를 입력해 다시 확인해보면 아무것도 뜨지 않았다.
환경변수를 설정하기 전과 동일하게 java -version은 나오지만 javac -version은 뜨지 않았다.
환경 변수 설정이 제대로 되지 않은건지 불러오지 않는건지 알 수가 없으니 해결책을 찾아보았다.
https://shuding.tistory.com/29
터미널 재실행시 source ~/.bash_profile 재입력해야하는 문제 해결법
자바 환경변수 설정을 하기 위해 vi에디터를 다 작성하고 마지막 과정으로 source를 입력해 적용을 했는데터미널을 종료했다가 다시 실행하면 echo $PATH를 입력했을 때 아무것도 출력이 되지 않는
shuding.tistory.com
2.STS에 자바JM 경로 추가
터미널에서 vi 명령어를 사용하여 추가할 수도 있지만 파일로 접근하는게 직관적이라 더 쉽다고 느껴져서 이 방법으로 접근했다.
STS 아이콘을 우클릭 한 뒤 패키지 내용 보기 > Contnets > Eclipse > STS.ini
STS.ini 파일을 열어준 뒤
-vm
/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/bin/java
위 두 줄을 넣어주면 된다.
찾아보니 -startup 위인 젤 윗쪽에 추가하는 분들도 많았는데 위치가 상관이 있는지는 모르겠다.
두 군데에 다 써봤지만 상관은 없는 것 같다.
혹시 몰라 요구되는 자바 버전도 1.8에서 지금 사용하려고 하는 버전인 11로 변경해주었다.
3.자바 재설치
https://www.azul.com/downloads/?package=jdk#zulu
Azul Downloads
No matter the size of your company, Azul offers competitive pricing options to fit your needs, your budget, and your ambition.
www.azul.com
원래 다운받았던 자바 파일이 arm 64 파일이었는데 이게 문제가 된다고 해서 ARM이 아닌 파일로 재설치 해주었다.
위 링크를 들어가 현재 사용하는 자바 버전의 ARM이 아닌 64비트짜리 압축파일을 다운받았다.
다운 받으면 zulu-11인가로 이름이 설정 되어있을텐데
파일 이름만 이 맥북에서 기존에 다운받아져 있던 자바 파일과 동일한 jdk-11.jdk로 바꿔주고
복사해서 그대로 JVM 파일 안에 넣어줬다. (원래 있던 파일은 삭제)
파일 경로는 사진 참고
4. 이클립스 환경설정
이건 혹시 몰라 해준건데 자바 디폴트 버전 설정과 컴파일러 버전도 11로 맞춰서 설정해주었다.
이클립스에서 Preferences > Installed JREs > Add
Add를 누르고,
MacOS X VM을 선택한 뒤 next
JRE home은 아래 사진의 경로로 들어가서 Home으로 설정해주면 된다.
이름은 아무거나 입력하고
추가한 버전 선택 후 Apply and Close 버튼을 눌러 종료하면 된다.
자바 버전에 맞게 컴파일러도 설정하였다.
Preferences > Java > Compiler
오류 해결 과정은
환경 변수 설정 -> STS에 자바 경로 추가 -> zshrc 조건문 추가 -> 이클립스 환경설정 -> 자바 재설치 순서였다.
많은 과정을 거쳤는데 마지막으로 ARM 파일 대신 자바 파일을 다시 다운받고 나서 드디어 STS가 실행이 되었다.
이 화면이 이렇게 반가울 줄이야...ㅠ