Development/Java
Java 명령어 실행 시 파일 확장자를 제거하는 이유
8iggy
2021. 10. 21. 01:07
읽기 전
- 불필요한 코드나 잘못 작성된 내용에 대한 지적은 언제나 환영합니다.
- 개인적으로 사용해보면서 배운 점을 정리한 글입니다.
java filename 명령어 실행 시 확장자 제거 이유
javac filename.java
명령어를 수행하면 filename.class라는 바이트 코드가 담긴 바이너리 파일이 생성된다. 이 파일을 JVM에 전달하여 실행하기 위해서는 java filename
명령어를 실행해야 하는데 그 이유는 JVM이 file을 실행한다고 표현하지 않고 file이름을 가진 바이트코드에 main 메소드가 존재한다는 사실을 전달하는 의미이기 때문이다.
따라서 filename.class
를 java.exe 명령어의 인자로 넘기면 filename을 package로 인식하고 class 확장자를 .class 파일의 파일명으로 인식하여 main 메소드가 없다는 에러나 메인 스레드의 메인 메소드를 찾을 수 없다는 NoClassDefFoundError를 출력하게 될 것이다.