개발 일기

CMD 명령창에서 JAVA 파일 컴파일하기 본문

카테고리 없음

CMD 명령창에서 JAVA 파일 컴파일하기

flow123 2022. 3. 8. 16:10

 

 

 

 

 

환경변수에 지정하는 이유: 컴파일  때마다 클래스를 지정하는 것이 번거롭기 때문임.

환경변수: 운영체제에 세팅하는 변수. 운영체제 안에서 어디에 있던지 접근할 있는 글로벌한 변수.

Ex. 자바는 클래스패스로 classPath 사용하는데, 값을 지정하면 실행할 때마다 classpath지정할 필요가 없다

 

클래스패스란? 

클래스가 위치한 경로를 미리 지정해서, 자바가 필요로 하는 클래스를 로드하는 방법을 지정하는 .

*참고로 위와 아래는 동일한 명령어이다. Class Path를 지정하지 않으면 현재 디렉터리 안에서 찾기 때문이다

문제: 같은 디렉토리 아래에 있음에도 class cannot find symbol 에러가 뜬다

 

클래스로더에서 클래스의 파일을 못찾아주는 같다. 스택오버플로우에서 제시하는 다양한 방법이 있었는데 그 중 하나가 의존하는 파일과 함께 javac compile을 하라는 것이었다. 그중 working 명령어는 아래와 같다. 폴더 내부의 java파일들을 한 번에 컴파일 하는 것이다. 

$ javac c/inheritance/*.java

아래와 같이 class 파일이 하나씩 생긴다. 

 

javac -cp c c/inheritance/InheritancePrint.java 명령어는 되지 않았는데, 아마 cp 를 쓰는 경우에는 이미 컴파일된 class 의 목록이 있거나 jar 를 읽는 용도로 쓰는 것 같다. 

 

2번째 문제:

Compile 되었음에도, java 실행이 안된다.  wrong name 이라는 에러가 뜬다. 

이때 명령어를 .로 패키지를 구분해주면 동작한다. 

java c.inheritance.inheritancePrint

위의 블로그에서 감사하게도 해결책을 찾았다.

 

(1) 패키지를 별도로 생성했을 때에는 java 명령어를 패키지의 parent 디렉토리에서 실행한다. - 이미 시도함

(2) 실행 패키지명.클래스파일 명으로 실행한다.

https://milhouse93.tistor

Comments