일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- PID
- expression statement is not assignment or call html
- Machine Learning
- SSR
- 카우치코딩 #couchcoding #6주포트폴리오 #6주협업프로젝트v
- 모바일웹스킨
- address
- Anaconda
- 서버사이드렌더링
- 자바파이썬
- Morphological analysis #Corpus
- 파이썬
- gitbash
- 플젝후체크
- terminate
- Technical Writing
- 카우치코딩 #couchcoding #6주포트폴리오 #6주협업프로젝트
- github
- 필사
- github markdown
- 마크다운
- #스파르타코딩클럽후기 #내일배움캠프후기
- taskkill
- khaiii
- 비동기
- Kakao
- 파이콘
- 클라이언트사이드렌더링
- 코딩온라인
- 출처: 자바의 신 8장
- Today
- Total
개발 일기
CMD 명령창에서 JAVA 파일 컴파일하기 본문
환경변수에 지정하는 이유: 컴파일 할 때마다 클래스를 지정하는 것이 번거롭기 때문임.
환경변수: 운영체제에 세팅하는 변수. 운영체제 안에서 어디에 있던지 접근할 수 있는 글로벌한 변수.
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) 단 실행 시 패키지명.클래스파일 명으로 실행한다.