![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
AntonSaburov |
|
||||||||||||||||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Спасибо большое Alone за предоставленную информацию
Краткое изложение руководства разработчика "Java Web Start" Это руководство описывает процедуру размещения приложений при помощи технологий Java TM Web Start и JNLP Технология Java Web Start Java Web Start - вспомогательное приложение, которое интегрируется с Web броузером. Когда пользователь щелкает на ссылке, указывающей на специальный пусковой файл (JNLP файл), броузер запускает Java Web Start, который автоматически скачивает, кэширует и запускает соответствующее приложение, базирующееся на технологии Java. Весь этот процесс происходит без какого-либо участия пользователя, за исключением первоначального щелчка по ссылке. Java Web Start позволяет запускать приложения отдельно от Web броузера. Эта возможность также может использоваться для операций в off-line, когда запуск через броузер часто неудобен или невозможен. Приложение также может быть запущено через ссылки на рабочем столе, запускающих размещенное в Web приложение подобно обычным приложениям. Java Web Start не зависит от типа используемого броузера и практически не зависит от платформы. Поэтому он работает с практически всеми броузерами и, как планируется в ближайшее время, будет перенесен на все платформы. поддерживающие Java 2 SE. Приложения, запускаемые при помощи Java Web Start кэшируются на локальной системе. Таким образом, уже скачанное приложение запускается так же, как и обычное, ранее установленное приложение. Конфигурация Web сервера для работы с MIME типом Java Web Start Необходимо сконфигурировать Web сервер таким образом, чтобы все файлы с расширением .jnlp были приведены к application/x-java-jnlp-file MIME типу. Большинство Web броузеров использует MIME тип, возвращаемый с содержанием Web сервера для определения способа получения содержания. Сервер должен возвращать application/x-java-jnlp-file MIME тип для JNLP файлов, необходимом для запуска Java Web Start. У каждого Web сервера есть особый способ для добавления MIME типов. Например, для Web сервера Apache вы должны включить следующую строку в конфигурационный файл .mime.types: application/x-java-jnlp-file JNLP Кроме этого, в application/octet-stream должно быть наличие jar Создание на Web странице ссылки на JNLP файл Ссылка на JNLP файл представляет собой обычную HTML ссылку. Пример: <a href="MyApp.jnlp">Запуск моего приложения</a> Настроенный на 1-м этапе Web сервер автоматически вернет application/x-java-jnlp-file MIME тип с любым файлом с расширением .jnlp. Это принципиально важно для того чтобы Web броузер запускал Java Web Start при скачивании файла. На Web странице должна также присутствовать ссылка на инсталлятор Java Web Start, чтобы пользователи у которых не установлен Java Web Start могли скачать и установить его. Для поддержки размещения в Web -- автоматического скачивания и запуска приложений -- и для гарантии того что приложение будет работать в системе безопасности sandbox, необходимо придерживаться следующих правил: * Приложение должно поставляться как набор JAR файлов. * Все ресурсы приложения, такие как файлы и изображения, должны храниться в JAR файлах и вызываться при помощи механизма getResource платформы Java 2 (см. далее). * Если приложение предназначено для запуска в защитном sandbox, оно должно соблюдать следующие ограничения: o Отсутствие доступа к локальному диску. o Все JAR файлы должны скачиваться с одного и того же хоста. o Подключение к сети разрешено только для связи с хостом, с которого скачиваются JAR файлы. o Не могут устанавливаться никакие менеджеры безопасности. o Никаких родных(native) библиотек. o Ограниченный доступ к свойствам системы. Приложение имеет доступ для чтения/записи всех системных свойств, заданных в JNLP файле, а также доступ только-для-чтения к свойствам, которые доступны апплетам. Приложение может использовать вызов System.exit. * Приложение, которому требуется неограниченный доступ к системе должно поставляться как набор подписанных JAR файлов. Все элементы каждого JAR файла должны быть подписаны. Синтаксис JNLP файлов Формат, использованный в этой версии соответствует формату заданному в Java Network Launching Protocol и спецификации API (JNLP), v1.0. Этот документ рассматривает наиболее часто используемые элементы JNLP файла. JNLP файл представляет собой документ XML. В качестве примера рассмотрим следующий JNLP файл:
Данный пример показывает основное outline of the document. Корневыми элементом является jnlp, который содержит четыре подэлемента: information, security, resources и application-desc. Кроме того, Java Web Start также поддерживает запуск апплетов с использованием элемента applet-desc. Элемент JNLP аттрибут spec: Для данной версии этот атрибут должен иметь значение 1.0 или выше. По умолчанию он принимает значение "1.0+" и, следовательно, может быть опущен. аттрибут codebase: Все относительные URL, задаваемые в атрибуте href JNLP файла используют этот URL в качестве базового. href attribute: Это URL, указывающий на расположение самого JNLP файла. Java Web Start использует этот атрибут для включения в перечень задач Менеджера Приложений. Информационные элементы элемент title: Название приложения. элемент vendor: Название производителя приложения. элемент homepage: Содержит отдельный атрибут, href, представляющий собой URL домашней страницы данного приложения. Используется Менеджером Приложений для отсылки пользователя на Web страницу с дополнительной информацией о приложении. элемент description: Краткое описание приложении. Элемент Description необязательный. Атрибут kind определяет как должно быть использовано описание и может принимать одно из следующих значений: * one-line: Это описание используется если ссылка на приложение должна отображаться в одной строке списка или таблицы. * short: Это описание используется если ссылка на приложение должна отображаться в ситуациях, когда есть место для параграфа. * tooltip: Описание приложение используемое в качестве краткого описания. Может быть задан только один элемент описания для каждого значения kind. Элемент описания без указания kind используется как значение по умолчанию. Следовательно, если Java Web Start потребуется короткое описание (эквивалентное значению short атрибута kind), которое не указано в JNLP файле, будет использовано описание без указания атрибута Описание представляет собой неформатированный текст. Использование форматирования и тэгов HTML не допустимо. элемент icon: Содержит HTTP URL сслыку на файл с графическим изображением в GIF или JPEG формате. Иконки используются: для отображения приложения при его выполнении в Java Web Start, Менеджером Приложений и рабочим столом. Иконки размера 64x64 отображаются в ходе загрузки, а иконки размера 32x32 используются в качестве иконок рабочего стола и менеджером приложений. Java Web Start автоматически изменяет размер иконок до нужного. В случае необходимости могут использоваться атрибуты width и height для задания размера изображений. элемент offline-allowed: Необязательный элемент offline-allowed указывает на то, может ли приложение работать в режиме offline. Приложение, в JNLP файле которого не отмечено что оно может работать в offline не сможет быть запущено через Менеджер приложений, если отмечена опция offline. По умолчанию приложение работает только если пользователь находится в режиме работы в сети. Элемент offline-allowed также управляет тем, как Java Web Start выполняет обновление приложений. Если элемент не указан, т.е., для запуска приложения надо находиться в сети, Java Web Start перед запуском постоянно выполняет проверку наличия обновленной версии приложения. Если обновленная версия найдена, то скачивается и запускается новое приложение. Таким образом, пользователь может быть уверен что он всегда работает с последней версией приложения. Но это лишь в том случае, если приложение не может работать в offline. Если задан элемент offline-allowed, Java Web Start также попытается обнаружить обновленную версию программы. Однако, если приложение уже было скачано, через несколько секунд этот поиск будет прерван и будет запущено кэшированное приложение. Поэтому в таком случае имеет смысл позаботиться о быстродействии сервера, но нет никаких гарантий того что пользователь будет работать с последней версией программы. Но это лишь в том случае, если приложение может работать в offline. Элементы безопасности Все приложения, по умолчанию, запускаются в окружении с ограниченными правами доступа, напоминающем sandbox апплета. Элемент безопасности может использоваться для запроса расширенных прав доступа. Если задан элемент all-permissions, приложение получает полный доступ к клиентской машине и локальной сети. Если приложение запрашивает полный доступ, то все его JAR файлы должны быть подписаны. При первом запуске таких программ пользователь должен подтвердить сертификат безопасности. Элементы ресурсов Элемент resources используется для задания всех ресурсов, таких как файлы классов Java, родные библиотеки и системные свойства, являющихся частью приложения. задание ресурсов может быть ограничено в некоторых операционных системах, архитектурах, или использование атрибутов os, arch и locale может быть локализовано. Элементы ресурсов могут иметь 6 различных подэлементов: jar, nativelib, j2se, property, package и extension. Элементы package и extension не рассматриваются в данном руководстве. Подробности см. в спецификации. Элемент jar задает JAR файл, являющийся частью пути классов (classpath) приложения. Пример: <jar href="myjar.jar"/> Jar файл будет загружен в JVM используя объект ClassLoader. Jar файл обычно содержит Java классы с кодом приложения, но может также включать прочие ресурсы, такие как иконки и конфигурационные файлы, доступ к которым осуществляется при помощи механизма getResource. Элемент j2se указывает на версии Java 2 SE Runtime Environment (JRE), поддерживаемые приложением, а также задает стандартные параметры виртуальной машины Java. Может задаваться несколько JRE в виде списка приоритетов, согласно которому первым будет загружена версия с наиболее высоким приорететом предпочтения. Пример: <j2se version="1.3" initial-heap-size="64m"/> <j2se version="1.2"/> Атрибут version по умолчанию ссылается на версию платформы Java 2. На сегодняшний день существуют версии "1.2" и "1.3". Спецификации JNLP также позволяют задавать полное название продуктов, например Java 2 JRE 1.2.2-001 by Sun Microsystems, Inc. Java Web Start не воспринимает JRE не в формате non-FCS при запросах с частичным заданием версии патформы. Например, запрос в форме <j2se version="1.4+"> не воспримет JRE "1.4.0-beta" как удовлетворяющую запросу. JRE от Sun Microsystems, Inc. согласно принятым соглашениям (начиная с 1.3.0) использует для маркировки формат non-FCS, если в строке с версией программы присутствует символ тире (-). Приложения, которые должны запускаться под какой-либо бета версией J2RE должны явно задавать версию продукта, т.е., также использовать атрибут href элемента j2se. Пример правильного запроса бета версии JRE: <j2se version="1.4-beta" href="http://java.sun.com/products/autodl/j2se"/> Элементы описания приложений Элемент application показывает что JNLP файл запускает приложение (в отличие от апплетов). У элемента application есть необязательный аттрибут, main-class, который используется для здания имени основного класса приложения, т.е.,класса, который содержит метод public static void main(String argv[]), с которого начинается запуск приложения. Атрибут main-class может быть опущен если первый JAR файл, заданный в JNLP файле содержит файл описания, который в свою очередь содержит основной класс. АргументыArguments can be specified to the application be including one or more nested argument elements. Пример:
Элементы описания апплетов В Java Web Start существует поддержка запуска Java апплетов. Эта поддержка обеспечивает простой способ использования существующего кода в Java Web Start. Апплеты запускаются при помощи лемента applet-desc вместо application-desc. Пример:
JAR файлы, которые содержат апплеты, как и приложения, сопровождаются элементом resources. Атрибут documentBase должен задаваться в явной форме, поскольку JNLP файл не входит в состав HTML страницы. Прочие атрибуты соответствуют обычным элементам HTML тэгов. Вместо атрибута code используется атрибут main-class. Атрибут main-class содержит название класса апплета (без расширения .class). Этот атрибут может быть опущен, если класс апплета можно найти в файле описания (манифесте), содержащегося в каталоге главного JAR файла. Примечание: Для работы с Java Web Start апплеты должны быть размещены в JAR файлах. Еще раз напомню, что с полным тексто можно ознакомиться здесь Спасибо большое Andyb за предоставленную информацию Вдоволь намучившись с разработкой Java Web Start приложения, решил поделиться опытом, дабы те кто начинает не наступали на те же грабли, что и я... Написать простую программу, и заставить ее работать под Java Web Start - достаточно просто. Но как быть со сложными приложениями, в которых осуществляется доступ к файлам, базе данных и т.д. Вот пример: Программа, которая может читать, создавать и сохранять текстовые файлы
1. Компилируем программу 2. Создаем файл манифеста
3.Создаем jar файл TestU.jar 4.Создаем файл запуска testU.jnlp
5.Создаем html страницу testU.html
6.Публикуем в интернете и пробуем запустить testU При выборе любого из пунктов меню, кроме Выхода ничего не происходит. А все от того, что TestU.jar не подписан... 7.Подписываем TestU.jar переименовав его в TestS.jar Как подписывать архивы подробно описано в подписи в апплетах 8. Далее необходимо изменить testU.jnlp
9.Заново публикуем в интернете и запускаем testS Все работает... Добавлено @ Добавлено @ 09:40 Да, совсем забыл перед запуском подписанной программы у вас спросят доверяете ли вы данной подписи. Если вы ответите да(Start) программа запустится, если нет то соответственно нет |
||||||||||||||||
|
|||||||||||||||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |