본문 바로가기

Java/Study

[Java]터미널 javac 실행시 cannot find symbol처리 방법

Java 파일을 터미널 환경에서 컴파일하는 방법을 정리하고자 한다. 

Main.java파일의 위치로 이동하여 javac Main.java를 실행하였더니, Test 클래스를 찾지 못하는 오류가 발생했다.

다른 java 파일로 나뉘어 있는 클래스를 찾지 못함

 

intellij와 같은 IDE를 활용하면 패키지 내의 모든. java파일들이 자동으로 빌드된다.

그래서 우리는 여태까지 터미널 환경에서 자바 프로젝트가 실행되는 과정을 고려하지 않아도 프로그램을 실행하는데 문제가 없었다.

 

 

우리는 보통 프로젝트를 관리할 때 패키지 안에 필요한 클래스들을 생성하여 프로그램을 만든다.

intellij는 자동으로 out 디렉토리 생성

 

자바 파일을 빌드하려면 빌드된 바이너리가 저장될 디렉터리가 필요하다.IDE를 사용하면 이 작업을 프로젝트를 생성할 때 알아서 해준다.

자세한 내용은 아래의 블로그를 참고하세요.

 

 

[Ant]자바파일 여러개 컴파일하고 실행(6)

참고: [Ant]ant설치와 환경설정(1) [Ant]간단한 ant 프로젝트 만들기(2) [Ant]target 나누기(3) [Ant]clean target(4) [Ant]property(5) 이제 여러분이 기초적이게 할수 있는 단계까지 여러분에게 알려드렸다. 그..

kamang-it.tistory.com

그래서 터미널로 java 파일을 실행하려면 

-d옵션은 빌드된 바이너리가 저장될 디렉터리이고,

-sourcepath옵션으로. java 파일이 있는 디렉터리를 설정해 줘야 한다.

디렉터리를 설정하고 그 뒤에 파일명의 풀 패스를 적는다.

javac -d out -sourcepath src/My src/My/*. java

*. java는 모든. java 파일을 빌드해 바이너리를 생성한다.

파일을 지정해서 빌드할 경우 파일 별로 풀 패스를 작성해 주어야 한다

javac -d out -sourcepath src/My src/My/Main.java src/My/Test.java

이렇게 하면,

main과 Test의 클래스 파일 생성

out디렉터리에 빌드한 디렉터리 폴더 안에 클래스 파일들이 생성된다.

out 디렉터리에서 java MY.Main을 실행하면 

성공적으로 터미널에서 실행이 가능하다. 

 

※터미널에서 실행 시 인코딩 오류도 신경 써야 한다.

인코딩 오류

방법이 있지만 ,

javac 명령문 -encoding utf-8 

명령문 뒤에 -encoding utf-8로 인코딩해주는 방법이 가장 간단하다.