'javac'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 해결 방법

Wookoa 2023. 12. 13.

Java/Javac는 실행할 수 있는 프로그램이 아닙니다.
Java/Javac는 실행할 수 있는 프로그램이 아닙니다.

머리말

  Java 프로그래밍에 입문할 때 정성스럽게 작성한 코드를 컴파일할 때 종종 맞닥뜨리는 오류이다. 명령 프롬프트 화면에 javac 키워드를 입력하면 'javac은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.' 오류 메시지가 출력되는 상황이다. 경력이 있는 개발자 혹은 Java 언어가 익숙하다면 스스로 문제점을 해결할 수 있겠지만, Java 프로그래밍 입문자의 경우 당혹스러울 것이다. 본 포스팅에서는 java 혹은 javac 명령어를 수행할 때 발생하는 오류 메시지를 해결하는 방법을 소개한다.

Java/Javac는 실행할 수 있는 프로그램이 아닙니다.

  자신의 개발 환경에 자바를 설치하고 환경변수를 설정했다면 곧바로 프로그래밍을 할 수 있다. 프로그램을 작성하는 중간에 컴파일을 수행할 텐데, 컴파일을 위해 javac 명령을 수행하면 아래와 같은 오류가 발생한다. 정확히 설명하자면, 해당 오류 메시지는 자바 오류 메시지가 아니다. 운영체제에서 발생시킨 오류 메시지며 javac 명령어를 이해하지 못해서 발생하는 오류 메시지다.

javac 명령어를 이해하지 못하는 운영체제
javac 명령어를 이해하지 못하는 운영체제

  운영체제가 javac 명령어를 이해하지 못하는 이유는 간단히 두 가지로 설명할 수 있다. 첫 번째는 실제로 javac.exe 프로그램이 설치되지 않은 경우다. 자신이 설치한 자바 경로에서 javac.exe 실행파일이 존재하는지 확인이 필요하다. javac.exe 실행 파일은 자바 소스코드를 컴파일할 때 사용되는 프로그램이며 JDK를 설치할 때 기본으로 설치된다. 본인의 개발환경에 설치된 JDK 경로는 아래와 같다.

C:\Program Files\Java\jdk1.8.0_241\bin\javac.exe

  두 번째는 환경 변수에 자신이 설치한 자바 경로를 제대로 설정하지 않은 경우다. 설정한 경로에 오타가 있거나 잘못 설정한 경우, 운영체제는 자바의 존재를 알아차릴 수 없다. 그렇기 때문에 실행할 수 없는 프로그램이라는 메시지를 출력하게 된다. 본인의 경우 아래와 같이 사용자 환경 변수를 설정했으며, 별도로 JAVA_HOME 변수는 설정하지 않았다. JAVA_HOME 변수를 설정하지 않아도, 최종적으로 자바 설치 경로의 bin 디렉터리를 참조할 수 있다면 문제없다. 해당 환경 변수는 설정 후 시스템 재부팅이 필요할 수 있다.

환경 변수 편집 화면에서 자바 환경 변수 설정
환경 변수 편집 화면에서 자바 환경 변수 설정

  정상적으로 자바 설치와 환경변수가 설정되었다면 아래와 같이 javac 명령어를 수행한 결과가 출력될 것이다. 추가적으로 설명하자면, 환경 변수를 설정 화면에 사용자 환경 변수시스템 환경 변수가 존재한다. 각 환경 변수의 차이점은 운영체제의 사용자 계정 레벨에서 사용되는 변수이냐, 시스템 레벨에서 사용되는 변수이냐의 차이점이다. 현재 운영체제에 접속한 사용자 계정에만 환경 변수를 설정하고 싶다면 사용자 환경 변수에 적용하면 된다.

javac 명령어 정상 수행 화면
javac 명령어 정상 수행 화면

꼬리말

  본 포스팅에서 설명한 개념과 마찬가지로 운영체제에서 결코 알 수 없는 키워드를 입력하면 동일한 메시지가 출력되는 것을 알 수 있다. 이를테면 wookoa 명령어를 수행해 보면, 'wookoa'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 오류 메시지를 확인할 수 있다. 이로써 java/javac는 실행할 수 있는 프로그램이 아니라는 운영체제의 에러 메시지를 해결하는 포스팅을 마치도록 한다.

인기있는 글

소중한 댓글 (0)