. 패키지 만 보호해야하기 때문에 패키지 만 봉인 할 수 있습니다. 한 클래스의 내용을 두 개의 파일에 분산시킬 수 없으므로 클래스를 보호 할 필요가 없습니다. 하나의 패키지 클래스를 두 개의 JAR에 분산시키는 것만 가능합니다. 그리고 씰링은 이것을 방지하는 것을 의미합니다. 기본값이 아니더라도 기본값으로 설정하는 것이 좋습니다.
예
앨리스 두 클래스 alice.Data
및 alice.Work
을 포함 alice
라는 패키지를 작성합니다. Data 클래스에는 변경할 수없는 몇 가지 변수가 들어 있습니다. 그렇지 않으면 Work 클래스의 코드가 실패 할 수 있습니다. Alice는 Work 클래스가 데이터에 액세스해야하기 때문에 Data 클래스를 패키지 private로 선언합니다. 이제 그녀는 패키지의 두 클래스를 alice.jar
이라는 JAR 파일에 넣고 JAR 파일을 Bob에게 제공합니다.
그러나 앨리스가 이미 다른 작업을하기 때문에 Bob에게 더 많은 작업이 필요하며 Mallory에 다른 클래스를 작성하라고 요청합니다. 따라서 Mallory는 mallory
이라는 패키지를 작성하고 mallory.Work
이라는 필수 클래스를 구현합니다. 그러나 Mallory는 부러워서 Alice를 불신하려고하고 alice.Anger
이라는 또 다른 클래스를 씁니다. 그리고 두 클래스를 mallory.jar
이라는 JAR 파일에 넣고 JAR 파일을 Bob에게 보냅니다.
밥은 모두 JAR 파일을 사용하고 mallory.jar
에서 클래스 alice.Anger
패키지 alice
에 개인 액세스 패키지와 alice.Data
의 데이터를 방해했기 때문에, Alice's 코드 문제로 실행됩니다.
앨리스가 JAR을 봉인 한 경우 Mallory가 패키지에 속한 클래스를 alice
에 속하게 할 수 없습니다. 패키지 alice
이 들어있는 다른 JAR이 이미 있고 각 패키지가 하나의 JAR에 있어야하므로 Java는이 JAR을 거부합니다.
특정 클래스를 봉인하여 * 달성하고자하는 것은 무엇입니까? –
http://docs.oracle.com/javase/tutorial/deployment/jar/sealman.html –
이 기사를 읽었을뿐 패키지를 봉인하는 방법을 보여 주므로 클래스 항목이 가능한지 궁금합니다. – user2352835