Spec-Zone .ru
спецификации, руководства, описания, API
|
Java Богатое Руководство по Интернет-приложениям> Переходящие Апплеты Java к Сети Java Запускает Приложения
Это руководство предназначается, чтобы помочь разработчикам перейти, их существующие апплеты Плагина Java к Сети Java Запускают приложения. В то время как должно быть возможно переместить большинство апплетов без проблемы, есть некоторые соображения для разработчиков, чтобы знать, делая миграцию. Следующее руководство описывает детали процесса миграции.
Следующие темы затрагиваются:
Переход обеспечивает возможность предназначаться к определенной среде выполнения Java (JRE) для версии или определенного диапазона версии. Сеть Java Запускается, технология поддерживает многократные, одновременные версии Java Standard Edition платформа. Определенные приложения могут запросить определенные версии Java, не конфликтуя с различными потребностями других приложений. Сеть Java Запускается, технология автоматически загружает и устанавливает корректную версию платформы Java по мере необходимости, основанный на потребностях приложения и среде пользователя.
Другое преимущество состоит в том, что пользователи могут запуститься, Сеть Java Запускаются не зависящий от приложения из Веб-браузера. Пользователь может быть офлайновым или неспособным получить доступ к браузеру. Настольные ярлыки могут также запустить приложение, предоставляя пользователю тот же самый опыт как то из собственного приложения.
Сеть Java Запускается, у технологии есть встроенная поддержка апплетов. Возможно работать, Ваш апплет непосредственно с Сетью Java Запускают технологию без любой перекомпиляции апплета. Все, что Вы должны сделать, должно преобразовать Ваши HTML-тэги апплета в Сеть Java Запускающийся Протокол (JNLP) файл, используя JNLP applet-desc
элемент. Например:
<resources> <java version="1.5+"/> <jar href="SwingSet2.jar"/> </resources> <applet-desc main-class="SwingSet2Applet" name="SwingSet" width="625" height="595"> <param name="param1" value="value1"/> <param name="param2" value="value2"/> </applet-desc>
Можно определить предназначенные версии JRE, используя java
элемент и его атрибут версии. Это поддерживает +
и *
операторы, и можно даже перечислить точную версию. Некоторые примеры следуют:
<java version="1.5+"/>
<java version="1.5*"/>
<java version="1.5.0_12+ 1.4.2_20"/>
Все Ваши ресурсы апплета должны быть упакованы в JAR (архивный файл Java), и иметь перечисленное использование файла JAR jar
элемент.
applet-desc
элемент содержит информацию всего апплета, такую как параметры апплета, width, height, и т.д. Для получения дополнительной информации относительно applet-desc
элемент, обратитесь к спецификации JNLP, раздел 3.6.2, "Дескриптор приложения для Апплета."
С applet-desc
тег, Сеть Java Запускает технологическое использование ее собственная версия средства просмотра апплета, чтобы запустить Ваш апплет.
Лучший способ переместить Ваш апплет состоит в том, чтобы переписать это как автономное приложение Java, и затем развернуться, это с Сетью Java Запускает технологию. Перезапись Вашего апплета и тестирование получающегося приложения гарантируют, что Ваш преобразованный апплет работает полностью как ожидалось. И Ваше приложение может использовать в своих интересах Сеть Java, Запускают функции.
Перезапись должна быть довольно прямой. Главная необходимая работа должна преобразовать Ваш applet
class к main
class приложения. Апплет init
и start
методы больше не присутствуют, вместо этого, следует инициализировать приложение в начале приложения main
метод.
Чтобы быстро начать миграцию, можно только добавить main
метод к Вашему оригиналу applet
class, и затем начинает вызывать Ваш код инициализации апплета, где это обычно вызывают от апплета init
и start
методы. Однажды есть a main
метод в applet
class, можно начать запускаться, он посредством Сети Java Запускает технологию, и затем медленно удаляет зависимость от Applet
class и преобразовывает это полностью в Ваше приложение main
class.
Для получения дополнительной информации обратитесь к Синтаксису Файла JNLP.
Следующее является списком соображений, которые могут быть важными, переходя.
Сеть Java Запускается, приложение не работает в пределах веб-браузера. Так, если у Вашего апплета есть зависимость от браузера (например, Java к JavaScript / JavaScript к связи Java посредством браузера), больше не будет работать коммуникационный код. API, на которые влияют, включают:
JSObject
API (netscape.javascript.JSObject.*
) поскольку Java к передаче JavaScript не работает на Сеть Java, Запускают приложения.
Общая Объектная модель документа (ДОМ) API (com.sun.java.browser.dom.*
и org.w3c.dom.*
) доступный для апплетов Плагина Java не доступны Сети Java, Запускают приложения.
Подобный технологии Плагина Java, Сеть Java Запускается, технология будет кэшировать Ваши JAR приложения для более быстрой производительности запуска. Однако, ресурсы, загруженные Вашим собственным кодом программы, не будут кэшироваться Сетью Java, Запускают технологию.
Сеть Java Запускается, технология оказывает постоянную поддержку cookie на Windows, используя хранилище cookie в Internet Explorer, и обрабатывающее cookie поведение определяется управлением cookie в IE. На Linux/Солярисе Запускается Сеть Java, технология оказывает постоянную поддержку cookie, используя ее собственную реализацию хранилища cookie. Для получения дополнительной информации см.
Если Вы развертываете апплет с JNLP applet-desc
элемент, Ваш апплет будет создаваться, используя AppletContainer
если Java Сеть Запускают технологию. Когда Ваш апплет вызывает Applet.getAppletContext()
, это возвращается AppletContainerContext
если Java Сеть Запускают технологию. Есть некоторые незначительные различия в реализации между Плагином Java AppletContext
и Сеть Java Запускается AppletContext
. Различия:
Следующие методы API Персистентности Апплета не реализуются Сетью Java, Запускают технологию:
AppletContext.getStream(String key) AppletContext.getStreamKeys() AppletContext.setStream(String key, InputStream s)
Для Java Сеть Запускает приложения, можно использовать API Службы Персистентности JNLP для того, чтобы хранить данные локально на системе клиента. Для получения дополнительной информации см. PersistenceService
интерфейс.
Для AppletContext.showDocument(URL url, String target)
, целевой параметр будет проигнорирован Сетью Java, Запускают технологию.
Для AppletContext.showStatus(String status)
, когда запущено с Java Сеть Запускает технологию, это установит JLabel
текст, который является ниже апплета, размещенного Сетью Java, Запускается AppletContainer
.
Подобный AppletContext.showDocument
, Сеть Java Запускается, приложения являются capabile показа страницы HTML, используя веб-браузер значения по умолчанию системы при использовании BasicService.showDocument
API.
Для апплета Плагина Java:
AppletContext.showDocument(URL url) AppletContext.showDocument(URL url, String target)
Для Java Сеть Запускают приложение:
BasicService.showDocument(URL url)
Для получения дополнительной информации см. BasicService
интерфейс.
В апплете, если Вы получаете ресурс посредством этих вызовов:
Applet.getImage(URL url) Applet.getImage(URL url, String name) Applet.getAudioClip(URL url) Applet.getAudioClip(URL url, String name) AppletContext.getAudioClip(URL url) AppletContext.getImage(URL url)
Затем в Java Сеть Запускает технологию, передовая практика должна включать ресурсы в Ваши файлы JAR приложения, и получить доступ к ресурсам, используя JNLPClassLoader
:
ClassLoader cl = this.getClass().getClassLoader(); URL url = cl.getResource(url); Image im = Toolkit.getDefaultToolkit().createImage(url);
Для получения дополнительной информации см. Ресурсы Получения от Файлов JAR.
pack200 инструмент упаковки JAR поддерживается и Сетью Java, Запускаются и технологии Плагина Java. Если Вы уже развертываете свои JAR апплета с pack200, никакое изменение не должно быть необходимо, когда переход на Сеть Java Запускает технологию. Для получения дополнительной информации см. Развертывающиеся Файлы JAR, Сжатые с Pack200.
При использовании OBJECT
тег в технологии Плагина Java, можно обнаружить, является ли Java avaliable на машине клиента с Плагином CLSID
и затем Java автозагрузки в случае необходимости. Та же самая поддержка доступна с Сетью Java, Запускаются, технология при использовании Сети Java Запускаются CLSID
. Для получения дополнительной информации см.
Если Вы хотите развернуться, расширения для Вашей Сети Java Запускают приложение, используют механизм протокола расширения JNLP. Для получения дополнительной информации обратитесь к
Одно преимущество механизма расширений JNLP по технологии Плагина Java состоит в том, что установленные расширения будут доступны всей Сети Java, Запускают приложения, работающие на системе, независимо от того с какой версией JRE приложение работает. В то время как для технологии Плагина Java, только апплеты, работающие в той же самой версии JRE, могут использовать установленные расширения.
Для подписанных файлов JAR, подобных технологии Плагина Java, можно подписать свои файлы JAR приложения и запросить Ваше приложение быть выполненным со все-полномочиями посредством файла JNLP. В технологии Плагина Java Ваши JAR апплета могут быть подписаны различными сертификатами. В Java Сеть Запускает технологию, тот же самый сертификат должен использоваться, чтобы подписать все файлы JAR (jar
и nativelib
элементы), которые являются частью единственного файла JNLP. Это упрощает пользовательское управление, так как только один сертификат должен быть представлен пользователю во время запуска на файл JNLP. Если Вы должны использовать JAR, подписанные с различными сертификатами, можно поместить их в компонентное расширение файл JNLP, и сослаться на него от основного файла JNLP. Для получения дополнительной информации обратитесь к