게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
java의 package를 활용하기 위한 classpath 적용 문제
게시물ID : programmer_13264짧은주소 복사하기
작성자 : 쇠폴더
추천 : 0
조회수 : 320회
댓글수 : 4개
등록시간 : 2015/09/14 01:54:27
옵션
  • 본인삭제금지
안녕하세요 java를 독학중인 한 학생입니다...
이렇게 오유의 첫 글을 질문글로 작성할 줄은 몰랐네요 ㅠㅠ
사실 생활코딩에 질문을 올릴까 생각을 해보다 무언가 하수의 레벨에서 쭈꿈거리는 제가 무작위의 사람들 앞에 놓이기 보다는 그나마 오유의 사람들 앞에서 부끄러움 당하는게 나을 것 같아 이곳에 글 올려봅니다.

문과+처음 독학해보는 언어이기에 모르는 부분이 있으면 가능한 검색하며 확인하고 있는데 지금 제가 이해하는 부분과 제 눈 앞에서 벌어지는 상황들이 상충하여 질문 드려봅니다.

-----------------------------------------------------------------

환경변수라는 존재에 대해 검색을 통해 조금 알아보았습니다. 특히 자바 언어를 다루기 위해 classpath라는 환경변수가 중요하다는 사실을 배웠습니다.
cmd가 탐색하고 있는 위치(.)외의 폴더에 필요한 클래스 파일이 있을 경우 이를 끌어와 쓰기 위해서 classpath를 설정해주는 것으로 이해하였습니다.

그런데 classpath를 설정하지 않고도 멀쩡하게 제가 작성한 코드가 돌아가서 조금 혼란에 빠졌습니다.
그래서 어디가 문제인지 확인해보기 위해 여기 저기 코드를 망쳐도 보고 아예 다른 폴더에 새롭게 작성도 해보고 여러 시도를 해보았지만 여전히 작동하기에 더욱이 혼란스러운 상황입니다.

현재 제 코드의 상황을 설명드리겠습니다

\java
ㄴCircleArPer.class, CircleArPer.java (메인함수 있는 파일)
\java\circle

\java\circle\area \java\circle\perimeter
ㄴCircle.class, Circle.java ㄴCircle.class, Circle.java 

area폴더와 perimeter폴더에 들어있는 클래스 이름은 동일하나 다른 메소드를 갖고있습니다. 이건 제가 지금 따라가고 있는 교제의 예제때문에 이렇게 작성했습니다.

코드는 다음과 같습니다.

//CircleArPer.java

class CircleArPer
{
public static void main(String[] args)
{
circle.area.Circle c1=new circle.area.Circle(2);
circle.perimeter.Circle c2=new circle.perimeter.Circle(3);
System.out.println("반지름이 2인 원의 넓이는"+ c1.area());
System.out.println("반지름이 3인 원의 둘레는"+ c2.perimeter());
}
}



//area 폴더안의 Circle.java

package circle.area;
public class Circle
{
double rad;
final double pi;
public Circle(double r)
{
rad=r;
pi=3.141592;
}

public double area()
{
return (rad*rad)*pi;
}
}

//perimeter 폴더안의 Circle.java

package circle.perimeter;
public class Circle
{
double rad;
final double pi;
public Circle(double r)
{
rad=r;
pi=3.141592;
}

public double perimeter()
{
return (rad*2)*pi;
}
}

========================================================

제가 이해한 바로는 classpath로 .\circle\area; .\circle\perimeter;를 추가해주어야 메인 함수가 작동할 줄 알았는데 환경변수를 추가해주지 않고도 동작하니 당황스럽습니다.

혹시 저의 지식이나 이해에 오류가 있다면 바로잡아주시면 감사하겠습니다!
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호