2011-02-16 5 views
0

저는 Java에 익숙하지 않고 일부에 어리석은 기본 질문을하고 있습니다.

메인 자바 클래스를 컴파일 한 후 대부분의 하위 클래스는 폴더에 $로 표시됩니다. 나는 순응 한 클래스들을 복사하고 그것을 실행할 다른 위치에 둔다. 메인 클래스를 변경하거나 서브 클래스 중 하나를 변경하면 매번 관련된 모든 서브 클래스를 복사해야합니까? 또는 변경된 것들만 복사하면됩니까?

감사합니다. 닉

+0

왜 그냥 같은 패키지에 넣고 패키지 복사본을 만드시겠습니까? – helpermethod

답변

0

하위 클래스 (class Y extends X {}) 또는 중첩 클래스 (class Y { class X {} })에 대한 것입니까?

$ 당신이 말한 것은 후자를 나타내는 것처럼 보입니다. 모든 경우를 복사해야하지만, 서브 클래 싱하는 경우 변경된 파일의 컴파일 된 버전 만 복사하면됩니다.

+0

안녕하세요, 답변 해 주셔서 감사합니다. 중첩되지 않고 클래스 Y 인 간단한 하위 클래스 화는 X {...}를 확장합니다. 도와 주셔서 감사합니다. – Nick

1

변경 사항을 복사합니다.

일반적으로, 당신은 당신의 IDE (예를 들어, Netbeans)/빌드 시스템을 (할 것입니다 예를 들어, Ant/Maven) 복사 할 하나 개의 파일 만 당신을 떠나, 또는 당신이 실행 jar-file를 만들 수 있습니다. 당신을 위해이 작업을 수행.

1

Nick,

nested classes을 참조 하시겠습니까? 그렇다면 컴파일 된 클래스 파일 이름에 "$"가 포함됩니다. 코드가 부모 클래스에만 변경되었다고 가정하면 중첩 된 클래스 바이트 코드는 다시 컴파일하는 동안 변경되지 않아야합니다. .class 파일 만 복사해야합니다. 그러나 분명히 모든 것을 복사하십시오.

1

$을 포함한 클래스 이름은 중첩/익명 클래스 용입니다.

그리고 this Stackoverflow question을 참조하십시오.

하지만 그게 전부는 아닙니다. OP I copy the complied classes and put it on another location to execute.을 인용하면이 작업을 자동화하고 Ant 또는 Maven과 같은 기존 Java 빌드 도구 중 하나를 사용해야합니다.

관련 문제