ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바코드는 어떻게 실행되는가? <2>
    언어/자바 2023. 12. 18. 17:30

     

     

    앞의 글에서 연결되는 글입니다.

    JDK와 JRE의 다른 점을 체감할 수 있는 예제를 살펴볼 것입니다.

    결론

    JDK를 설치하면 JRE + javac를 비롯한 개발에 필요한 많은 것들이 함께 설치되어 코드 작성과 컴파일 실행이 모두가능.
    JRE만 설치하면 실행환경만 설치되기 때문에 컴파일이나 다른 개발에 필요한 작업들을 할 수가 없다.


     

     

    JDK와 JRE를 어떻게 다른가?

    이전 글에서 알아봤던 JDK와 JRE를 직접 설치해보고, 어디에 설치되는지? 어떤 모습인지 확인해보자.
    다음과 같은 시나리오로 가지고 진행해보자.

    1. 자바가 설치되어있지 않은 나의 컴퓨터에서 자바 코드를 작성한다.
    2. 작성된 코드가 정상 실행되는지 확인한다.
    3. 친구의 컴퓨터에도 자바가 설치되어있지 않다.
    4. 자바로 작성된 코드를 친구의 컴퓨터에서 확인해보려고 한다.

     

     

     

    1.  자바가 설치되어있지 않은 나의 컴퓨터에서 자바 코드를 작성한다.

    콘솔에 헬로우 월드가 찍히는 자바 파일을 하나 작성하였다.

     

     

    2. 작성된 코드가 정상 실행되는지 확인한다.

    우선 컴파일을 해보자.

    $ javac ./helloworld.java

     

    해당 명령어를 실행하니 아래와 같은 에러를 보여준다.
    런타임 로케이션에 문제를 이야기하면서, 컴파일에 실패한다.

     

     

    런타임? 그럼 JRE(Java Runtime Environment)를 설치하면되려나?

    $ brew tap adoptopenjdk/openjdk
    $ brew search jre
    $ brew install --cask adoptopenjdk8-jre

     

     

    설치 후에 아래 패스를 찾아가면 JRE가 설치 되어있는 것을 확인할 수 있다.

    cd /Library/Java/JavaVirtualMachines

     

    자, 이제 jre를 설치하였으니, 다시 한번 컴파일을 해보겠다.
    거의 똑같은 에러를 다시 보여주는데, 이번에는 끝에 javac를 서포트 하지 않는다는 내용이 새로 생겼다.

     

     

    JRE에는 컴파일러가 포함되어 있지 않은것 같으니, JRE를 지우고 이번에는 JDK를 설치해보자.

    $ brew uninstall --cask adoptopenjdk8-jre 
    $ brew search jdk
    $ brew install --cask adoptopenjdk8

     

    다시 컴파일을 해보자!
    이번에는 컴파일러는 작동을하고, 클래스명과 파일명이 같지 않다는 에러를 던져준다!
    JDK를 설치해야 컴파일러를 사용할 수 있다는 것을 확인했다!

     

     

    이름을 바꿔주고 컴파일 성공!

     

    그리고 실행되는 것 까지 확인!

     

    $ java NewWorld    // Hello world

     

     

    3. 친구의 컴퓨터에도 자바가 설치되어있지 않다.

    4. 자바로 작성된 코드를 친구의 컴퓨터에서 확인해보려고 한다.

     

    그러면 이제 우리가 컴파일한 파일을 친구의 컴퓨터에서 실행한다고 가정해보자!
    이를 위해서 JDK를 다시 지우고 처음부터 시작해보자.

     

    $ brew uninstall --cask adoptopenjdk8

     

    있는 .class 파일을 한번 실행시켜본다.

    $ java NewWorld

     

    앞에서 한번 봤던, Runtime에 관한 에러가 뜬다.

     

     

    그러면 이어서 JRE를 설치하고 다시 시도해보자.

    $ brew tap adoptopenjdk/openjdk
    $ brew search jre
    $ brew install --cask adoptopenjdk8-jre

     

    다시 실행

    $ java NewWorld // Hello World

     

    JRE를 설치한 것 만으로도 실행이 가능한 것을 확인할 수 있다.

     

     

     

     


    [출처]

    https://www.geeksforgeeks.org/jvm-works-jvm-architecture/
    https://www.youtube.com/watch?v=H7UlMH_SdGc&ab_channel=GeeksforGeeks

Designed by Tistory.