해결된 질문
작성
·
61
·
수정됨
0
안녕하세요. 강사님
2025년 새해복 많이 받으세요!
반드시 알아야 할 중요한 시점 까지 강의를 시청한 상태입니다. 기초적인 질문인것 같지만... 3가지 질문 있습니다!
1번 질문 : javac.exe나 java.exe라는 것이
javac.exe : 실행시키면 .java 파일들을 .class로 번역하는 모듈 -> 컴파일러
java.exe : .class파일을 로딩 + 실행시키는 모듈 -> JVM
위의 내용처럼 이미 누군가가(JDK 개발사?) 만들어 놓은 모듈이여서 딸깍! 실행만 시켜주면 정해진 로직을 하는 프로그램(모듈)인가요?
2번 질문 : javac.exe <- 이게 컴파일러인가요? 맞다면 이것도 java나 c,c++같은 native code로 작성되어있는건가요?
3번 질문 : 종합적으로 Main.java(Hello, World!라는 문자열을 출력)를 작성한 상태라고 가정하면 Main.java를 JDK포함되어 있는 컴파일러(이미 만들어져있는 javac.exe)를 실행시켜서 컴파일하고 컴파일한 바이트코드를 JRE(JVM)에서(만들어져 있는 java.exe) 실행시키는 거라고 이해했는데 맞나요?
답변 1
0
insub2004님도 새해 복 많이 많이 받으세요~! 😄
그럼 질문에 답변을 드리겠습니다.
Java 컴파일러와 JVM 모두 소프트웨어 입니다. 특히 JVM은 성능 상의 이유로 C++로 개발합니다. 향후 다른 언어로 만들어질 가능성이 있겠으나 적어도 현재까지는 그렇습니다. C/C++ 언어에서 통상의 '모듈'이라는 것은 Windows OS기준 .exe, .dll 같은 실행 파일(PE 형식 파일)을 의미합니다. 그러므로 java.exe는 word.exe나 excel.exe 같은 프로그램입니다.
네. javac.exe는 컴파일러 입니다. 보통 C++로 개발됩니다. 그러나 컴파일러는 얼마든지 다른 언어로 개발될 수 있습니다. 대표적으로 Eclipse compiler for Java는 Java로 개발된 컴파일러 입니다.
네, 그렇게 이해하시면 되겠습니다. 😄