[질문]클래스 패스 설정에 대한 질문입니다.
물맑
어떤 클래스를 클래스 패스에 추가해서이용하려고 했는데요
예를들어
c:\test\classes\ch10
이란 폴더 안에 package ch10; 으로 잡은 test.class 란 파일이 있고 ,
클래스 패스를 c:\test\classes 로 잡은후
import ch10.test;
라고 컴파일을했습니다.잘 컴파일 되더라구요 근대 classes 폴더 안에 test.java 란 파일이 있거든요?
import ch10.test; 라고 할땐 컴파일이 잘되는데
import ch10.*; 라고 할땐 test.java 란 파일이 배드클래스 어쩌고 하면서 컴파일이 안되네요..
test.java 란 클래스를 지워주고 import ch10.*; 하니깐 또 잘 되더라구요.
원래 java 파일이 클래스 패스 내부에 있으면 안되는건가요?
-
나리 2023-09-16
답변 감사합니다.~~^^ 사이트엔 역시 없는게 없는듯 ㅡㅡ 좋은하루 되세요~
-
악당 2023-09-16
참고로, 컴파일 옵션에 대해 궁금하시면, 사이트에 \javac 명령어의 옵션 정리\ 라는 게시물이 있습니다. 참조하세요.
-
파란 2023-09-16
먼저, *(애스트리커)를 사용하면, 모든의 의미가 되므로, 가상머신은 ch10.* == ch10 폴더내의 모든 파일을 자바 클래스파일로 간주하고 시작합니다. 그래서, 발생한 에러같습니다. 그리고, 왜 소스와 클래스파일을 한곳에 두는지 잘은 모르겠지만.. 소스와 클래스 파일은 분리해서 사용하세요. 그리고, 컴파일시 -d옵션을 사용하면 클래스 파일 생성시 편리합니다.