TaBo
개척하는 기록
TaBo
전체 방문자
오늘
어제
  • 기록들 (63)
    • Programming (35)
      • Java (19)
      • Servlet&Jsp (4)
      • Spring (4)
      • SpringBoot (1)
      • 기타 (2)
      • BOJ (5)
    • CS (16)
      • 자료구조 (4)
      • 알고리즘 (4)
      • 운영체제 (5)
      • 기본 용어 (3)
    • Project (4)
      • [Spring] 게시판 (4)
    • 나에 대한 기록 (8)

블로그 메뉴

  • Github

인기 글

태그

  • Spring 게시판
  • 알고리즘
  • spring
  • 스프링 게시판
  • c++
  • java
  • 운영체제
  • 자바
  • OS
  • 백준

최근 글

티스토리

hELLO · Designed By 정상우.
TaBo

개척하는 기록

[Java] JVM, Java 환경변수 설정(Mac, 기본 zsh 쉘)
Programming/Java

[Java] JVM, Java 환경변수 설정(Mac, 기본 zsh 쉘)

2023. 1. 18. 08:52

※ 본문은 혼자 공부한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요!

 

[ 1 ] JVM이란?

JVM이란 Java Virtual Machine을 줄인 것으로 'Java를 실행하기 위한 가상 기계'이다.  - Java의 정석(남궁성)

컴퓨터의 성능이 향상됨에 따라 많은 하드웨어들이 '소프트웨어화'되어 컴퓨터 속으로 들어오고 있다. 그 예시로 TV를 소프트웨어화한 '윈도우 미디어 플레이어' 등이 있으며 우리는 이처럼 소프트웨어로 구현된 하드웨어를 '가상 기계(Virtual Machine)'라고 한다.

 

JVM은 결국 Java를 실행하는 '가상 컴퓨터'이며, 이는 실제 컴퓨터(하드웨어)가 아닌 소프트웨어로 구현된 컴퓨터를 의미한다. 즉, 컴퓨터(하드웨어) 속의 Java를 실행하는 컴퓨터(소프트웨어)가 JVM인 것이다.

 

자바로 개발된 어플리케이션은 모두 JVM에서만 실행되기 때문에, 자바 어플리케이션을 실행하기 위해서는 반드시 JVM이 필요하다.

 

 

그렇다면 JVM을 사용함으로써 얻을 수 있는 이점은 무엇일까?

일반적인 어플리케이션의 코드는 OS(운영체제)만 거치고 하드웨어로 전달된다. 이는 어플리케이션이 OS에 종속적이며 만약 해당 프로그램을 다른 종류의 OS에 적용하기 위해서는 많은 노력이 필요함을 의미한다. 반면 자바로 개발된 어플리케이션은 JVM을 거친 후 OS를 거치기 때문에 OS에 독립적이다. 이는 자바 어플리케이션은 JVM만 있다면 코드를 수정할 필요 없이 어떤 OS에서든 실행 가능함을 의미한다. 단, JVM은 OS에 종속적이기에 자바 어플리케이션을 개발하기 위해서는 본인의 OS에 맞는 JVM을 설치해야 한다.

 

즉, Java는 JVM을 사용함으로써 '운영체제에 독립적이다'라는 이점을 얻을 수 있다.

 

 


[ 2 ] Mac(기본 zsh 쉘)에서 Java 환경변수 설정

JVM을 설치하기 위해서는 JDK를 설치해야 하며, 설치한 JDK 디렉토리의 bin 디렉토리를 path에 추가해야 한다. 해당 디렉토리에는 javac(자바 컴파일러), java(자바 인터프리터) 등의 실행파일이 있으며 path에 해당 디렉토리를 등록하면 여러 실행파일을 파일 경로 없이 파일 이름만으로도 사용할 수 있게 된다.

 

우선 자신이 사용할 JDK 버전을 자신의 OS에 맞게 설치한다.

(보통 oracle에서 설치하지만, oracle에서는 M1에 맞는 JDK1.8을 지원하고 있지 않기에, 필자는 zulu open JDK 1.8 버전을 설치했다)

더보기

https://www.azul.com/downloads/

 

Downloads

According to the Gartner report, “by 2025, more than 70% of Java applications will be deployed on third-party Java runtimes, up from 30% in 2019.”

www.azul.com

 

 

 

Mac의 경우 JDK를 설치하면 /Library/Java/JavaVirtualMachines 디렉토리에 저장된다. 

 

최근 맥 OS에서는 zsh 쉘이 기본이기 때문에 ~/.zshrc 로만 path를 설정하면 된다. (terminal을 열었을 때 기본 쉘이 zsh인지 확인한다)

 

우선 터미널을 실행하여 vi ~/.zshrc 로 zsh 설정파일을 연다.

vi ~/.zshrc

 

i를 누르면 하단에 ---insert--- 가 나타나고, 내용을 수정할 수 있게 된다. 

export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
export PATH=${PATH}:$JAVA_HOME/bin

위의 두 줄을 추가하고 esc를 누른 후 :wq로 에디터를 빠져나온다.

(단, zulu-8.jdk은 필자 기준이고, 해당 위치에는 본인이 설치한 jdk 버전의 폴더명을 적어준다)

 

vi 에디터가 종료되었다면 터미널에 아래의 명령어를 입력한다.

source ~/.zshrc

 

echo $path

java -version
javac -version

 

마지막으로 echo $path로 path가 잘 설정되었는지 확인하고, java와 javac 버전을 확인한다.

 

더보기

https://codingsquirrel.tistory.com/45

 

Mac 에서 자바 path 및 환경변수 설정하기 * 맥에서 JDK 초기설정

집에서는 맥북을 쓰기때문에 윈도우와는 다르게 설정하는 것이 필요했는데, 정보들이 나에게 맞지않거나, 아니면 스택오버플로우등에 정보가 다 산재돼있어서 처음에 설정하느라 정말 고생했

codingsquirrel.tistory.com

 

 


[oh-my-zsh] Can't update : not a git repository.

zsh 설정파일을 수정하고 나서 can't update 에러가 발생할 때가 있다. 이는 terminal 대신 iTerm2를 사용할 때 macOS 업데이트 시 간혹 발생할 수 있는 문제라고 한다.

 

https://velog.io/@hwangwonbins/mac-OMZ-cant-update-xcrun-error-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0

 

[mac] "OMZ can't update" & "xcrun error" 해결하기

oh-my-zsh Can't update: not a git repository.OMZ 이상여부를 확인해보기 위해 omz version을 확인해본 결과 version이 확인되지 않으며 아래와 같은 문구가 출력된다.<detached> () OMZ 폴더에 디렉터리

velog.io

 

해당 글에서 해결 방법을 잘 정리해줘서 감사할 따름이다...

저작자표시 비영리 변경금지 (새창열림)

'Programming > Java' 카테고리의 다른 글

[Java] JVM의 메모리 구조(Runtime Data Area)  (0) 2023.02.22
[Java] 클래스, 객체, 인스턴스의 차이 및 객체 배열  (0) 2023.02.17
[Java] List Interface  (0) 2022.10.10
[Java] 컬렉션 프레임워크  (1) 2022.10.03
[Java] length, length(), size() 차이  (1) 2022.10.02
    'Programming/Java' 카테고리의 다른 글
    • [Java] JVM의 메모리 구조(Runtime Data Area)
    • [Java] 클래스, 객체, 인스턴스의 차이 및 객체 배열
    • [Java] List Interface
    • [Java] 컬렉션 프레임워크
    TaBo
    TaBo

    티스토리툴바