읽기 전
- 불필요한 코드나 잘못 작성된 내용에 대한 지적은 언제나 환영합니다.
- 개인적으로 사용해보면서 배운 점을 정리한 글입니다.
java filename 명령어 실행 시 확장자 제거 이유
javac filename.java
명령어를 수행하면 filename.class라는 바이트 코드가 담긴 바이너리 파일이 생성된다. 이 파일을 JVM에 전달하여 실행하기 위해서는 java filename
명령어를 실행해야 하는데 그 이유는 JVM이 file을 실행한다고 표현하지 않고 file이름을 가진 바이트코드에 main 메소드가 존재한다는 사실을 전달하는 의미이기 때문이다.
따라서 filename.class
를 java.exe 명령어의 인자로 넘기면 filename을 package로 인식하고 class 확장자를 .class 파일의 파일명으로 인식하여 main 메소드가 없다는 에러나 메인 스레드의 메인 메소드를 찾을 수 없다는 NoClassDefFoundError를 출력하게 될 것이다.
'Development > Java' 카테고리의 다른 글
Java 상속의 문제점과 컴포지트 패턴 (0) | 2021.10.31 |
---|---|
Java 메소드 오버로딩(overloading) & 오버라이딩(overriding) (5) | 2021.10.21 |
Java float, double, BigDecimal - 부동소수점 오차 (2) | 2021.10.21 |
Java 메소드를 클래스에 넣어야 하는 이유 - .class 파일 구조 (0) | 2021.10.21 |
Java 객체와 변수 데이터의 저장 (0) | 2021.10.21 |