Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

<Содержание

Развертывание Расширений Java

Отметьте: Расширения Java также упоминаются как дополнительные пакеты, стандартные расширения, или просто расширения.

Этот раздел затрагивает следующие темы:

Апплеты Java могут использовать расширения Java, чтобы предоставить дополнительную функциональность пользователям. Плагин Java позволяет апплетам инициировать установку различных расширений Java (например, JavaHelp, 3-D Java, Платформа Носителей Java...) в среде выполнения Java. Этот документ описывает основные шаги для того, чтобы развернуть установленные расширения Java (против связанных расширений Java) с Плагином Java. Для получения дополнительной информации о том, как Расширения Java работают, см. Механизм Расширений Java.

Краткий обзор

Апплет, который использует расширения, упаковывается как файл JAR со знаком включая декларацию. Когда апплет загружается и выполняется с Плагином Java, Плагин Java проверяет декларацию файла JAR апплета. Декларация будет содержать список всех расширений, которых требует апплет. Расширение состоит из одного или более файлов JAR, которые будут установлены в <jre>/lib/ext каталог.

Вообще, для каждого расширения декларация апплета перечислит имя, поставщика, и информацию о версии JAR расширения; это также перечислит URL, из которых могут быть получены JAR, или установщик для них, если JAR уже не устанавливаются <jre>/lib/ext или являются устаревшими. URL может непосредственно определить один из JAR расширения, или это может определить установщик, собственный или Java, который установит JAR расширения. Правила для того, чтобы решить, что обновление требуется, описываются в Дополнительном Управлении версиями Пакета.

Чтобы использовать Плагин Java для того, чтобы развернуть Расширения Java, информация о расширениях должна быть определена в трех различных файлах манифеста:

  1. Декларация файла JAR апплета

  2. Декларация каждого JAR расширения

  3. Декларация Implementation-URL Файл JAR

Каждый из этих типов файлов манифеста описывается подробно ниже.

Декларация файла JAR апплета

Чтобы развернуть расширения Java с апплетом, апплет должен быть упакован как файл JAR. Кроме того файл манифеста JAR апплета должен определить список расширений, которых это требует, и определите URL, с которых расширения могут быть загружены, наряду с другой информацией о расширениях, согласно Дополнительному Управлению версиями Пакета. Например, ниже файл манифеста для двух расширений:

Extension-List: RectangleArea RectanglePerimeter
RectangleArea-Extension-Name: com.mycompany.RectangleArea
RectangleArea-Specification-Version: 1.2
RectangleArea-Implementation-Version: 1.2
RectangleArea-Implementation-Vendor-Id: com.mycompany
RectangleArea-Implementation-URL: http://example.com/RectangleArea.jar
RectanglePerimeter-Extension-Name: com.example.RectanglePerimeter
RectanglePerimeter-Specification-Version: 1.2
RectanglePerimeter-Implementation-Version: 1.2
RectanglePerimeter-Implementation-Vendor-Id: com.example
RectanglePerimeter-Implementation-URL: http://example.com/RectanglePerimeter.jar

В этом примере два расширения развертываются с applet⠀” RectangleArea и RectanglePerimeter. У каждого есть единственный файл JAR. Если они не были установлены или если обновленные версии будут необходимы, то надлежащие версии будут загружены с Implementation-URL спецификации. Заметьте что Implementation-URL должен указать на файл JAR что:

Это будет объяснено подробно в разделе ниже вызванного декларацию Implementation-URL Файл JAR.

Extension-List имена и префиксы атрибута

Здесь есть два основных сценария: У расширения может быть единственный файл JAR, или у него могут быть многократные файлы JAR. Extension-List имена и префиксы атрибута обсуждаются ниже для этих двух сценариев:

Расширение с единственным файлом JAR

Для расширения с единственным файлом JAR (как в примере выше), имя в Extension-List, и префикс связанных явных атрибутов, должно быть имя файла JAR расширения.

Расширение с многократными файлами JAR

Некоторые расширения состоят из многократных файлов JAR. Например, Java 3-D расширение состоит из следующих файлов JAR: j3daudio.jar, j3dcore.jar, j3dutils.jar, и vecmath.jar. Есть два сценария, которые нужно рассмотреть: (1) JAR устанавливаются собственным установщиком или установщиком Java или (2), никакой установщик не используется (то есть, необработанная установка JAR расширения).

Если собственный установщик или установщик Java используются, чтобы установить расширение, то только одни из имен файлов JAR должны использоваться в Extension-List, и только один набор атрибутов, используя то имя в качестве префикса, должен появиться. Обычно у расширения есть основной файл JAR; если так, следует использовать его имя в Extension-List и как префикс для связанных явных атрибутов. Если нет никакого основного файла JAR, можно использовать имя любого файла JAR в дополнительном пакете.

Вот является пример декларации апплета для Java 3-D расширением. j3dcore.jar основной файл JAR.

Extension-List: j3dcore
j3dcore-Extension-Name: javax.media.j3d

j3dcore-Specification-Version: 1.2
j3dcore-Specification-Vendor: Sun Microsystems, Inc
j3dcore-Implementation-Version: 1.2.1_03
j3dcore-Implementation-Vendor-Id: com.sun
j3dcore-Implementation-URL: http://<myserver>/native/java3d-win.jar

Для необработанной установки с многократными файлами JAR история отличается: следует обработать каждый файл JAR, как если бы это было отдельным расширением и перечисляет каждого согласно его имени в Extension-List. У каждого перечисленного тогда должен быть его собственный набор явных атрибутов, где префикс для набора атрибута является именем связанного файла JAR.

Примечание по Идентификации Расширения JAR:

Отметьте, что Плагин Java проверяет четыре явных атрибута установленного расширения JAR файл:

  • Extension-Name
  • Specification-Version
  • Implementation-Version
  • Implementation-Vendor-Id

Extension-Name и Implementation-Vendor-Id должен соответствовать точно значения, определенные в файле манифеста апплета.

Декларация каждого файла JAR расширения

Здесь мы говорим о файлах JAR, которыми Плагин может получить из URL, определенных Implemenation-URL. Доступные URL JAR расширения могут быть непосредственно получены (необработанная установка), или они могут быть получены через Java или собственный установщик. В любом случае они устанавливаются в <jre>/lib/ext.

Расширения, которых требует апплет, перечисляются в декларации апплета. Это позволяет Плагину исследовать файлы JAR, существующие в <jre>/lib/ext каталог, когда апплет запускается и решить, должно ли это установить без вести пропавших или устаревшие расширения.

Вообще, декларация JAR расширения, полученного через Implementation-URL потребности включать различное имя, версию, и информацию о поставщике. Таким образом, когда такой JAR расширения устанавливается, для Плагина Java будет возможно в будущем сравнить эту информацию с информацией о расширении, которое запрашивает апплет; и Плагин будет в состоянии определить, должно ли расширение быть установлено/обновлено. До любого апплета, когда-либо запрашивающего расширение, более чем вероятно, что никакое расширение не устанавливается в <jre>/lib/ext, или что никакая или неполная явная информация не присутствует в установленном JAR расширения.

Для расширения с единственным файлом JAR файл JAR должен быть подписан и включать файл манифеста со следующими атрибутами:

Пример

Extension-Name: javax.help
Specification-Vendor: Sun Microsystems, Inc
Specification-Version: 1.0
Implementation-Vendor-Id: com.sun
Implementation-Vendor: Sun Microsystems, Inc
Implementation-Version: 1.1.3

Если расширение состоит больше чем из одного файла JAR, и расширение устанавливается с собственным установщиком / установщиком Java, то только файл JAR, имя которого перечисляется в Extension-List из апплета у декларации должна быть информация о расширении (то есть, Extension-Name, Specification-Version, и т.д.). Если никакой установщик не используется, то все файлы JAR должны включать информацию о расширении.

См. Дополнительное Управление версиями Пакета для получения дополнительной информации об этих атрибутах.

Декларация Implementation-URL Файл JAR

Это - файл JAR, к которому обращается апплет с Implementation-URL атрибут в его декларации. Это - URL, из которого может быть получено расширение, если никакое расширение не устанавливается в <jre>/lib/ext, или расширение устанавливается, но это устаревшее.

Если Implementation-URL JAR является собственным установщиком или установщиком Java, это обозначается в декларации через два специальных атрибута: Main-Class указывает на установщик Java; Extension-Installation указывает на собственный установщик. Отметьте это, если никакой установщик не обозначается, то Implementation-URL Файл JAR является просто файлом JAR расширения непосредственно. Есть три способа, которыми расширения могут быть установлены Плагином Java. Они:

Каждый метод обсуждается ниже:

Установка Расширений Java Используя Необработанную Установку

С необработанной установкой расширения каждый JAR расширения устанавливается Плагином Java в <jre>/lib/ext каталог без установщика (Java или собственный); то есть, Плагин Java является "установщиком" для каждого JAR. Если у расширения есть единственный файл JAR, то URL того JAR показывают как Implementation-URL в декларации JAR апплета; и Плагин Java знает, что это - необработанное расширение, потому что декларация файла JAR расширения не включает ни одного Main-Class ни Extension-Installation атрибут.

Предположите, что нам вызывали расширение javax.mediax с единственным JAR, mediax.jar. Затем апплет и JAR расширения могли бы быть как показано ниже:

Пример: декларация JAR Апплета

Extension-List: mediax
mediax-Extension-Name: javax.mediax
mediax-Specification-Version: 1.1
mediax-Implementation-Version: 1.1.2
mediax-Implementation-Vendor-Id: com.sun
mediax-Implementation-URL: http://java.sun.com/products/plugin/extensions/examples/media/mediax.jar

Пример: декларация JAR Расширения

Extension-Name: javax.mediax
Specification-Vendor: Sun Microsystems, Inc Specification-Version: 1.1
Implementation-Vendor-Id: com.sun
Implementation-Vendor: Sun Microsystems, Inc
Implementation-Version: 1.1.2
Теперь предположите, что у нас есть другая версия, javax.mediax-2, у этого есть два JAR: mediax_core.jar и mediax_codec.jar. Затем мы должны обработать два файла JAR, как если бы они были отдельными расширениями и перечисляют каждого в декларации JAR апплета.

Пример: декларация JAR Апплета

Extension-List: mediax_core mediax_codec
mediax_core-Extension-Name: javax.mediax_core
mediax_core-Specification-Version: 1.1
mediax_core-Implementation-Version: 1.1.2
mediax_core-Implementation-Vendor-Id: com.sun
mediax_core-Implementation-URL: http://java.sun.com/products/plugin/extensions/examples/media/mediax_core.jar mediax_codec-Extension-Name: javax.mediax_codec
mediax_codec-Specification-Version: 1.1
mediax_codec-Implementation-Version: 1.1.2
mediax_codec-Implementation-Vendor-Id: com.sun
mediax_codec-Implementation-URL: http://java.sun.com/products/plugin/extensions/examples/media/mediax_codec.jar

Пример: декларации JAR Расширения

Extension-Name: javax.mediax_core
Specification-Vendor: Sun Microsystems, Inc Specification-Version: 1.1
Implementation-Vendor-Id: com.sun
Implementation-Vendor: Sun Microsystems, Inc
Implementation-Version: 1.1.2
Extension-Name: javax.mediax_codec
Specification-Vendor: Sun Microsystems, Inc Specification-Version: 1.1
Implementation-Vendor-Id: com.sun
Implementation-Vendor: Sun Microsystems, Inc
Implementation-Version: 1.1.2

Установка Расширений Java Используя Установщик Java

Расширение может быть установлено через установщик Java. Установщик Java должен быть связан как файл JAR, и получающийся файл JAR должен быть определен как Implementation-URL в файле манифеста JAR апплета. Во время установки файл JAR будет загружен и проверен, и Main-Class из установщика Java в JAR файл будет выполняться, чтобы запустить установщик. Это - задание установщика Java, чтобы скопировать файлы JAR расширения, обычно связываемые установщиком, в правильное расположение Среды выполнения Java (то есть, <jre>/lib/ext).

Хотя мы теперь имеем дело с файлом JAR приложения, атрибуты в его декларации должны быть тем же самым как показанными для JAR расширения, имя которого перечисляется в Extension-List из апплета manifest⠀” с добавлением Main-Class атрибут.

Пример: декларация JAR Установщика Java

Extension-Name: javax.help 
Specification-Vendor: Sun Microsystems, Inc 
Specification-Version: 1.1 
Implementation-Vendor-Id: com.sun 
Implementation-Vendor: Sun Microsystems, Inc 
Implementation-Version: 1.1.3
Main-Class: com.sun.javahelp.installer
В этом случае, потому что Main-Class присутствует в декларации, JAR будет обработан как Установщик Java, и Main-class будет вызван. Это - задание установщика Java, чтобы скопировать файлы JAR расширений в <jre>/lib/ext каталог. Отметьте, что каждый файл JAR расширения должен содержать надлежащую информацию об управлении версиями.

Установка Расширений Java Используя Собственный Установщик

Расширение может также быть установлено через собственный установщик. Собственный установщик должен быть связан как файл JAR, и получающийся файл JAR должен быть определен как Implementation-URL в файле манифеста JAR апплета. Во время установки файл JAR будет загружен и проверен, и собственный установщик будет запущен. Это - задание собственного установщика, чтобы скопировать файлы JAR расширения, обычно связываемые установщиком, в правильное расположение Среды выполнения Java (то есть, <jre>/lib/ext).

Хотя мы теперь имеем дело с файлом JAR приложения, атрибуты в его декларации должны быть тем же самым как показанными для JAR расширения, имя которого перечисляется в Extension-List из апплета manifest⠀” с добавлением Extension-Installation атрибут.

Пример: Собственная Декларация Фляги Установщика

Extension-Name: javax.media.jmf
Specification-Vendor: Sun Microsystems, Inc 
Specification-Version: 2.1 
Implementation-Vendor-Id: com.sun 
Implementation-Vendor: Sun Microsystems, Inc 
Implementation-Version: 2.1.1
Extension-Installation: jmf-2_1_1-win.exe

В этом случае, потому что Extension-Installation присутствует в декларации, JAR будет обработан как собственный установщик; и сам установщик будет запущен. Это - задание собственного установщика, чтобы скопировать расширения Java в <jre>/lib/ext каталог. Отметьте, что каждый файл JAR расширения Java должен содержать надлежащую информацию об управлении версиями.

Безопасность

Когда установленное расширение должно будет быть обновлено, расширение будет загружено и проверено, чтобы гарантировать, что это правильно подписывается. Если это допустимо, Плагин может открыть диалоговое окно безопасности обеспечение пользователя с опцией, чтобы продолжаться с установкой расширения или отменить установку.

Как только пользователь выбирает опцию из диалогового окна безопасности, установка расширений будет выполняться в соответствующем контексте защиты. Апплет не будет запущен, пока расширения должным образом не устанавливаются.

Поскольку расширения Java загружаются и устанавливаются в Среду выполнения Java <jre>/lib/ext каталог, каждый должен быть подписан. Как только расширения устанавливаются, им предоставят полномочия расширениям Java через файл политики.

Подробные Инструкции

Следуйте за этими шагами, чтобы установить расширения для использования с Плагином Java:

I. Создайте/получите расширения, в которых нуждается Ваш апплет.

Каждое расширение будет состоять из одного или более файлов JAR, каждый из которых должен включать файл манифеста с информацией о версии как описано выше в Декларации каждого файла JAR расширения, и каждый должен быть подписан. (См. исключение к этому с mulitple JAR, установленными с собственным установщиком / установщиком Java.)

Чтобы создать файл JAR из любого набора файлов, используйте эту команду:

% jar cmf my_manifest my_jar input_files

Для получения дополнительной информации о jar инструмент, см. документацию Инструментов и Утилит для своей платформы.

Подписать файл JAR собирается предпринять некоторое усилие. В форме схемы это - то, что можно сделать:

  1. Используйте keytool -genkey опция, чтобы генерировать пару ключей.
  2. Используйте keytool -certreq генерировать запрос сертификата на Центр сертификации (CA), такой как VeriSign и Thawte. Пошлите запрос по электронной почте к CA. После того, как CA подтвердил Ваши идентификационные данные, он ответит цепочкой сертификата по электронной почте. Скопируйте цепочку сертификата в файл.
  3. Можно тогда использовать keytool -import опция, чтобы импортировать цепочку к keystore.
  4. Можно теперь использовать jarsigner инструмент, чтобы подписать JAR и -verify опция, чтобы проверить, что это подписывается.

Для получения дополнительной информации о keytool и jarsigner, см. документацию Инструментов и Утилит для своей платформы.

Больше информации об этой теме, наряду с примерами, дается в главе под названием то, Как Подписать Апплеты Используя Сертификаты RSA-со-знаком. Хотя та глава обсуждает, как подписать файл JAR апплета, процесс идентичен подписанию файла JAR расширения.

II. Создайте/получите Implementation-URL Файлы JAR

Если никакой установщик не должен использоваться:

Файлы JAR расширения, описанные в шаге, я Implementation-URL JAR.

Если установщик должен использоваться:

  1. Создайте/получите установщик.
  2. Создайте декларацию для JAR установщика и любых связанных расширений, которые должны войти в это.
  3. JAR установщик, декларация, и любые связанные расширения, которые должны быть включены и подписать JAR. (Шаги для JARing и подписания являются тем же самым как описано в шаге I выше.)

Пример

Предположите, что у нас есть апплет, который требует Java Sun Усовершенствованная Обработка изображений как установленное расширение. Можно загрузить это здесь:

http://java.sun.com/products/java-media/jai/downloads/download.html

Предположите, что Вы выбираете версию "Windows JRE Install". Следующий файл будет загружен:

jai-1_1_1_01-lib-windows-i586-jre.exe

Этот установщик связывает следующие файлы JAR, которые он установит в <jre>/lib/ext каталог:

Вы должны создать декларацию для файла JAR, который содержит .exe установщик выше, и Вы должны подписать файл JAR.

Декларация была бы похожа на это:

Extension-Name: javax.media.jai 
Specification-Vendor: Sun Microsystems, Inc 
Specification-Version: 1.1 
Implementation-Vendor-Id: com.sun 
Implementation-Vendor: Sun Microsystems, Inc 
Implementation-Version: 1.1.1_01
Extension-Installation: jai-1_1_1-01-windows-i586-jre.exe

Теперь JAR установщик как jai_win.jar, вместе с файлом манифеста. Вы не должны включать файлы JAR расширения, поскольку они связываются .exe установщик в этом случае. Убедитесь, что включали .jar расширение в имени файла JAR.

Теперь знак jai_win.jar.

III. Создайте JAR апплета

1. Создайте файл манифеста для апплета. Ниже файл манифеста для jai примера, используя собственный установщик:

Extension-List: jai_core
jai_core-Extension-Name: javax.media.jai
jai_core-Specification-Version: 1.1
jai_core-Implementation-Version: 1.1.1_01
jai_core-Implementation-Vendor-Id: com.sun
jai_core-Implementation-URL: http://myserver.example.com/jai_win.jar

Некоторые дополнительные пакеты, прибывшие упакованный в различных файлах JAR для различных операционных систем. Если Вы хотите, чтобы Ваш апплет работал над различным OSs, можно использовать $(os-name)$ конструкция в Implementation-URL явный атрибут. $(os-name)$ преобразует в целевой ОС, что апплет выполняется on⠀” то есть, SunOS, Linux, Windows 98, Windows NT, Windows 2000, Windows Me.

optpkg-Implementation-URL: http://.../optpkg-$(os-name)$.jar

2. JAR *.class файлы, и любые другие вспомогательные файлы потребности апплета, вместе с файлом манифеста апплета, и знаком JAR. (Процедура для JARing Ваши файлы и подписание JAR является тем же самым как обсуждено ранее.) Убедиться, что включал .jar расширение в имени файла JAR.

IV. Генерируйте HTML, чтобы запустить апплет

Создайте страницу HTML для апплета. Можно сделать это вручную, или можно использовать HtmlConverter это идет с JDK. Рекомендуется, чтобы Вы использовали HtmlConverter. Но если Вы хотите сделать это вручную, см. Используя OBJECT, EMBED и APPLET Теги в Плагине Java для информации о том, как сделать это. Отметьте, что файл JAR апплета должен войти archive атрибут.

Предположите, что Ваш апплет вызывают JaiApplet, файл JAR, который Вы создали для этого, вызывают JaiApplet.jar, и основной класс JaiApplet.class.

Предположите, что исходный апплет похож на это:

<html>
<head>
<title>JaiApplet</title>
</head>
<body>
<APPLET code="JaiApplet.class" archive="JaiApplet.jar" align="absmiddle" WIDTH="400"HEIGHT="300"> </APPLET>
</body>
</html>

Затем, если мы используем HtmlConverter чтобы преобразовать это для динамического управления версиями, у нас будет это:

<html>
<head>
<title>JaiApplet</title>
</head>
<body>
<!--"CONVERTED_APPLET"-->
<!-- HTML CONVERTER -->
<OBJECT
classid = "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
codebase = "http://java.sun.com/update/1.6.0/jinstall-6-windows-i586.cab#Version=6,0,0,99"
WIDTH = "400" HEIGHT = "300" ALIGN = "absmiddle" >
<PARAM NAME = CODE VALUE = "JaiApplet.class" >
<PARAM NAME = ARCHIVE VALUE = "JaiApplet.jar" >
<PARAM NAME = "type" VALUE = "application/x-java-applet;version=1.6">
<PARAM NAME = "scriptable" VALUE = "false">
<COMMENT>
<EMBED
type = "application/x-java-applet;version=1.6"
CODE = "JaiApplet.class"
ARCHIVE = "JaiApplet.jar"
WIDTH = "400"
HEIGHT = "300"
ALIGN = "absmiddle"
scriptable = false
pluginspage = "http://java.sun.com/products/plugin/index.html#download">
<NOEMBED>
</NOEMBED>
</EMBED>
</COMMENT>
</OBJECT>
<!--
<APPLET CODE = "JaiApplet.class" ARCHIVE = "JaiApplet.jar" WIDTH = "400" HEIGHT = "300" ALIGN = "absmiddle">
</APPLET>
-->
<!--"END_CONVERTED_APPLET"-->
</body>
</html>

Когда Вы выполните апплет, Плагин Java выведет на экран Безопасность Java, Предупреждающую, если расширение не будет уже установлено, сообщая Вам, апплет требует установки расширения javax.media.jai от http://myserver.example.com/jai_win.jar. Если Вы предоставите, что разрешение устанавливает расширение, то установщик установит файлы JAR в <jre>/lib/ext каталог. Как только установка полна, Ваш апплет будет работать.

См. Приложение 5: Завершите Example⠀” Развертывающаяся Платформа Носителей Java как Расширение Java для полного, рабочего примера, показывающего, как развернуть Платформу Носителей Java как Расширение Java.

Известные Ограничения и Другие Примечания

 


Oracle и/или его филиалы Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами