Spec-Zone .ru
спецификации, руководства, описания, API
|
Отметьте: Это руководство по плагину Java описывает функции, выпущенные до Java SE 6 обновлений 10 выпусков. См. Java Богатый документ Разработки и Развертывания Интернет-приложений для последней информации.
Отметьте: Расширения Java также упоминаются как дополнительные пакеты, стандартные расширения, или просто расширения.
Этот раздел затрагивает следующие темы:
Implementation-URL
Файл JAR
Апплеты Java могут использовать расширения Java, чтобы предоставить дополнительную функциональность пользователям. Плагин Java позволяет апплетам инициировать установку различных
Апплет, который использует расширения, упаковывается как подписанный файл JAR включая декларацию. Когда апплет загружается и выполняется с Плагином Java, Плагин Java проверяет декларацию файла JAR апплета. Декларация будет содержать список всех расширений, которых требует апплет. Расширение состоит из одного или более файлов JAR, которые будут установлены в <jre>/lib/ext
каталог.
Вообще, для каждого расширения декларация апплета перечислит имя, поставщика, и информацию о версии JAR расширения; это также перечислит URL, из которых могут быть получены JAR, или установщик для них, если JAR уже не устанавливаются <jre>/lib/ext
или являются устаревшими. URL может непосредственно определить один из JAR расширения, или это может определить установщик, собственный или Java, который установит JAR расширения. Правила для того, чтобы решить, что обновление требуется, описываются в Дополнительном Управлении версиями Пакета.
Чтобы использовать Плагин Java для того, чтобы развернуть Расширения Java, информация о расширениях должна быть определена в трех различных файлах манифеста:
Каждый из этих типов файлов манифеста описывается подробно ниже.
Чтобы развернуть расширения 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 (как в примере выше), имя в Extension-List
, и префикс связанных явных атрибутов, должно быть имя файла 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.j3dj3dcore-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, которыми Плагин может получить из 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
Specification-Vendor
Specification-Version
Implementation-Vendor-Id
Implementation-Vendor
Implemenation-Version
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. Они:
Каждый метод обсуждается ниже:
С необработанной установкой расширения каждый 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 расширения могли бы быть как показано ниже:
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
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 апплета. 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 должен быть связан как файл JAR, и получающийся файл JAR должен быть определен как Implementation-URL
в файле манифеста JAR апплета. Во время установки файл JAR будет загружен и проверен, и Main-Class
из установщика Java в JAR файл будет выполняться, чтобы запустить установщик. Это - задание установщика Java, чтобы скопировать файлы JAR расширения, обычно связываемые установщиком, в правильное расположение Среды выполнения Java (то есть, <jre>/lib/ext
).
Хотя мы теперь имеем дело с файлом JAR приложения, атрибуты в его декларации должны быть тем же самым как показанными для JAR расширения, имя которого перечисляется в Extension-List
из апплета manifestâ с добавлением Main-Class
атрибут.
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 расширения должен содержать надлежащую информацию об управлении версиями. Расширение может также быть установлено через собственный установщик. Собственный установщик должен быть связан как файл 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:
Каждое расширение будет состоять из одного или более файлов JAR, каждый из которых должен включать файл манифеста с информацией о версии как описано выше в Декларации каждого файла JAR расширения, и каждый должен быть подписан. (См. исключение к этому с mulitple JAR, установленными с собственным установщиком / установщиком Java.)
Чтобы создать файл JAR из любого набора файлов, используйте эту команду:
% jar cmf my_manifest my_jar input_files
Для получения дополнительной информации о jar
инструмент, см. документацию Инструментов и Утилит для своей платформы.
Подписать файл JAR собирается предпринять некоторое усилие. В форме схемы это - то, что можно сделать:
keytool -genkey
опция, чтобы генерировать пару ключей.keytool -certreq
генерировать запрос сертификата на Центр сертификации (CA), такой как keytool -import
опция, чтобы импортировать цепочку к keystore.jarsigner
инструмент, чтобы подписать JAR и -verify
опция, чтобы проверить, что это подписывается.Для получения дополнительной информации о keytool
и jarsigner
, см. документацию Инструментов и Утилит для своей платформы.
Больше информации об этой теме, наряду с примерами, дается в главе под названием то, Как Подписать Апплеты Используя RSA-подписанные Сертификаты. Хотя та глава обсуждает, как подписать файл JAR апплета, процесс идентичен подписанию файла JAR расширения.
Implementation-URL
Файлы JARФайлы JAR расширения, описанные в шаге, я Implementation-URL
JAR.
Main-Class
атрибут в декларации;Extension-Installation
атрибут.Предположите, что у нас есть апплет, который требует 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
каталог:
jai_codec.jar
jai_core.jar
mlibwrapper_jai.core
Вы должны создать декларацию для файла 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
.
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.
Создайте страницу HTML для апплета. Можно сделать это вручную, или можно использовать HtmlConverter
это идет с JDK. Рекомендуется, чтобы Вы использовали HtmlConverter
. Но если Вы хотите сделать это вручную, см. Используя OBJECT
, EMBED
и APPLET
Теги в Плагине Java для информации о том, как сделать это. Отметьте, что файл JAR апплета должен войти archive
атрибут.
Предположите, что Ваш апплет вызывают JaiApplet
, файл JAR, который Вы создали для этого, вызывают JaiApplet.jar
, и основной class 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.
Implementation-URL
Файл JAR не подписывается должным образом, Плагин Java перестанет работать тихо.<jre>/lib/ext
. Результаты будут непредсказуемы. Main-class
пока установка не делается. В некоторых случаях Установщик Java может создать окно AWT и переключить управление на различный поток и сразу возвратиться из Main-class
. Возврат управления от Main-class
вынудит апплеты быть загруженными и сразу запущенными, даже если Установщик Java будет все еще в процессе установки. Это заставит апплет быть не в состоянии загрузиться, потому что расширение еще не устанавливается.