2009-04-02 2 views
16

JAR 파일의 일부 클래스를 사용하고 있으며 패키지 (com.abc.xyz)에 속합니다.동일한 패키지 클래스를 여러 Jar 파일에 분산시킬 수 있습니까?

필자도이 패키지에 속해 있지만 필자의 파일을 해당 JAR 파일에 번들 할 수는 없다. 동일한 패키지에 속한 클래스를 여러 JAR 파일에 분산시킬 수 있습니까?

+0

이 없다고해야 할 ? 전체 패키지를 단일 병 안에 보관하는 것이 좋습니다. 당신이 할 수없는 이유를 보는 것은 흥미로울 것입니다. –

+0

나는 그것을 할 수 있어야했고 (광산이 아닌 Jar에서 "기본"액세스로 클래스를 액세스하고 하위 클래스로 만들 수 있음), 제대로 작동했습니다 ... – Varkhan

답변

4

나는 왜 그것이 가능하지 않을지 모르겠다. 중요한 것은 클래스가 클래스 패스에 있다는 것입니다.

16

기본적으로 절대적으로.

그러나, 특정 패키지의 클래스가 하나 개의 jar 파일에서로드 있는지 확인하기 위해 당신이 add that information to the manifest을 할 수 원하는 합니다.

7

JAR에 패키지가 sealed 인 경우를 제외하고는 상당히 수행 할 수 있습니다.

3

아마도 당신이해야 할 일이 아닙니다. 패키지가 동일한 패키지에 포함되어있는 경우 패키지로 묶어서는 안됩니다 (예 : 퍼즐은 모듈간에 패키지를 분할 할 수 있지만 물고기의 다른 주전자가 될 것으로 생각합니다).

두 패키지 중 하나가 매니페스트에서 봉인으로 표시되어 있으면 차단 될 수 있습니다. 물론 전체 항아리를 봉인으로 표시하는 것이 좋습니다.

클래스에 다른 서명자가 있고 클래스가 동일한 클래스 로더에 의해로드되는 경우 차단 될 수도 있습니다.

다른 클래스 로더를 사용하여 클래스를로드하는 경우 "네임 스페이스"는 동일하지만 패키지 (및 관련 보호 된 부분) 액세스는 실제로 얻을 수 없습니다.

0

때때로 당신은 당신이 그렇게해야 할 이유를 설명 할 수 있습니다, 당신은 타사 라이브러리의 기능을 확장하고 싶지만 경우가 열리지 sourcve 및/또는 BTW 소스를