Spec-Zone .ru
спецификации, руководства, описания, API
|
Пакеты в пределах файлов JAR могут быть дополнительно изолированы, что означает, что все классы, определенные в том пакете, должны быть заархивированы в том же самом файле JAR. Вы могли бы хотеть изолировать пакет, например, гарантировать непротиворечивость версии среди классов в Вашем программном обеспечении.
Вы изолируете пакет в файле JAR, добавляя заголовок Sealed в декларации, у которой есть общая форма:
Name: myCompany/myPackage/ Sealed: true
Значение myCompany/myPackage/ является именем пакета, чтобы изолировать.
Отметьте, что имя пакета должно закончиться "/".
Мы хотим изолировать два пакета firstPackage и secondPackage в файле JAR MyJar.jar.
Мы сначала создаем текстовый файл под названием Manifest.txt со следующим содержанием:
Name: myCompany/firstPackage/ Sealed: true Name: myCompany/secondPackage/ Sealed: true
Мы тогда создаем файл JAR под названием MyJar.jar, вводя следующую команду:
jar cmf MyJar.jar Manifest.txt MyPackage/*.class
Это создает файл JAR с декларацией со следующим содержанием:
Manifest-Version: 1.0 Created-By: 1.6.0 (Sun Microsystems Inc.) Name: myCompany/firstPackage/ Sealed: true Name: myCompany/secondPackage/ Sealed: true
Если Вы хотите гарантировать, что все классы в пакете, прибывшем из того же самого источника кода, используйте изоляцию JAR. Изолированный JAR определяет, что все пакеты, определенные тем JAR, изолируются если не переопределено на основе на пакет.
Чтобы изолировать файл фляги, используйте заголовок декларации Sealed с истиной значения. Например,
Sealed: true
определяет, что все пакеты в этом архиве изолируются если явно не переопределено для определенных пакетов с атрибутом Sealed в явной записи.