Spec-Zone .ru
спецификации, руководства, описания, API
|
Java Богатое Руководство по Интернет-приложениям> Java Богатый Совет Развертывания Интернет-приложений
Следующие темы затрагиваются:
Запускаясь в Java выпуска SE, 6 обновлений 10, Протокол Запуска Сети Java (JNLP) обеспечивает объединенный механизм для того, чтобы он развернул богатые интернет-приложения (RIA – апплеты и Сеть Java Запускают приложения). RIA запустили использование, у JNLP есть следующие мощные возможности в их распоряжении:
Чтобы избежать проблем совместимости браузера,
Сценарий представляет единственный объект, названный deployJava, который содержит следующие общедоступные функции:
createWebStartLaunchButton(jnlp, minimumVersion)
- Выводит кнопку запуска для указанного URL JNLP. Когда щелкнуто, кнопка гарантирует, что соответствующий JRE устанавливается, и затем запустите приложение JNLP.createWebStartLaunchButtonEx(jnlp, minimumVersion)
- Выводит кнопку запуска для указанного URL JNLP. Когда щелкнуто, кнопка гарантирует, что соответствующий JRE устанавливается, и затем запустите приложение JNLP. Файл JNLP не требует значения для codebase
атрибут. Эта функция требует, чтобы Java SE 6 обновлений 18 выпусков присутствовал на клиенте. Если Java SE 6 обновлений, 18 выпусков не присутствуют на клиенте, то пользователь будет проинструктирован, чтобы установить необходимое программное обеспечение.getBrowser()
- Возвращает имя в настоящий момент рабочего браузера.getJREs()
- Возвращает массив установленных в настоящий момент строк версии JRE.installJRE(requestVersion)
- Инициировал установку указанного requestVersion
, последняя версия, соответствующая указанное requestVersion
, или последний JRE. installLatestJRE()
- Инициировал установку последнего JRE isPlugin2()
- Определяет, является ли Плагин Java следующего поколения значением по умолчанию.isWebStartInstalled(minimumVersion)
- Возвращает true, если установка Сети Java Запускается указанного minimumVersion
может быть обнаружен. launch
- Запуски приложение JNLP.runApplet(attributes, parameters, minimumVersion)
- Гарантирует, что соответствующий JRE устанавливается и затем выполняет апплет. setAdditionalPackages(packageList)
- Устанавливает дополнительный список пакета, который будет использоваться установщиком ядра. setInstallerType(type)
- Устанавливает привилегированный тип установки: нуль, онлайн, ядро.versionCheck(version)
- Возвращает true, если есть соответствие версия JRE, в настоящий момент установленная (среди обнаруженных getJREs()
функция). writeAppletTag(attributes, parameters)
- Выводит тег апплета с указанными атрибутами и параметрами. Параметр параметров является дополнительным. См.
Если кратное число JREs обязаны выполнять различные апплеты Плагина Java на той же самой машине, рекомендуется установить JREs в порядке их версий. Самая старая версия должна быть установлена сначала и новейшая версия, установленная последний. Это избежит проблемы динамического CLSID {8AD9C840-044E-11D1-B3E9-00805F499D93} используемый в объектном теге, который не использует последнюю версию JRE на компьютере.
Запускаясь с JRE 5.0u6 с поддержкой SSV, вышеупомянутое не является проблемой, потому что последняя версия JRE на машине будет использоваться. Кроме того, новая динамическая версия CLSID {CAFEEFAC-FFFF-FFFF-FFFF-ABCDEFFEDCBA} была добавлена. Если новый динамический CLSID будет использоваться в объектном теге, то последняя версия JRE будет использоваться независимо от порядка установки JREs.
Порядок установки не должен иметь никакого эффекта на Сеть Java, Запускаются. В любом случае самая высокая версия JRE на системе будет содержать версию Сети Java, Запускаются, который выполняется.
Ресурсы, к которым получают доступ в Сети Java, Запускают приложение, или апплет Плагина Java может кэшироваться на клиентской машине в Кэше Развертывания. Неблагоразумно принять формат или контент этого кэша, поскольку это может измениться между версиями.
Когда портирующие одинокие программы к Сети Java Запускаются или Плагин Java, проблемы могут произойти, когда у кода есть свойственные предположения, что это загружается SystemClassLoader. В Java ресурсы Плагина загружаются PluginClassLoader (который расширяет sun.applet. AppletClassLoader, который поочередно расширяет java.net. URLClassLoader). В Java Запускается Сеть, ресурсы загружаются JNLPClassLoader (который с JDK 6 расширяет java.net. URLClassLoader).
Получите доступ к ClassLoder, используемому с:
ClassLoader cl = Thread.getCurrent().getContextClassLoader();
ClassLoader.getResource () возвращает URL, но любой код, который принимает, URL является JarURL к FileURL, и затем пытается анализировать тот FileURL, чтобы найти, что базовый путь к файлу перестанет работать. Корректный способ получить доступ к ресурсам состоит в том, чтобы использовать getResourceAsStream (), который возвратит корректный контент независимо от того, что тип ClassLoder используется, чтобы получить доступ к ресурсу. Если ресурс будет уже кэшироваться, то содержание ресурса будет возвращено из кэша непосредственно, таким образом не будет дополнительных сетевых соединений с ресурсом непосредственно.
Мы не рекомендуем изменить содержание кэша развертывания Java непосредственно. Кэш является частной реализацией Сети Java, Запускаются / Плагин Java, и подвержен изменениям в любое время.
Много приложений и библиотек пытаются развернуть файлы свойств и другие "ресурсы" включением их в том же самом каталоге как файл фляги, который использует их, и затем ожидайте быть в состоянии анализировать URL, возвращенный из getResource (), чтобы создать путь к этим файлам. Разработчики утверждают, что это необходимо так, приложение может позже изменить эти файлы свойств или другие "ресурсы" для использования в последующем launchings приложения. Портируя на сеть развернутые приложения, они тогда находят, что должны повторно упаковать их в файлы фляги приложения, и считать их только контентом "значения по умолчанию", и использовать один из нескольких других механизмов, чтобы сохранить измененные версии на клиентской машине (при записи файлов или или при использовании Привилегированного API или при использовании PersistenceService JNLP.)
Когда приложения являются большими, может быть полезно только загрузить часть приложения, которое обязано запускать, и затем загружать остальных по требованию. Этот процесс упоминается как ленивая загрузка.
Сеть Java Запускается, имеет поддержку ленивой загрузки, но немного разработчиков используют это. Это может быть способ значительно улучшить время загрузки и запуска в некоторых приложениях. Чтобы эффективно использовать ленивую загрузку, Веб-Запуск Java должен знать который фляга загрузить, чтобы разрешить запрос на определенный ресурс. Предыдущие версии Сети Java Запускаются, потребовал, чтобы сложная спецификация частей и пакетов предоставила эту информацию. Начинаясь с версии 6.0, та же самая вещь может быть выполнена, используя Индексацию Фляги.
Индексация фляги является простым и эффективным способом загрузить только необходимые фляги, и избежать загружать все, когда несуществующий ресурс требуют. См., что Фляга Индексирует.
У Плагина Java есть встроенная поддержка ленивой загрузки (то есть, загрузка ленива по умолчанию), и также поддерживает Индексацию Фляги. Разработчики должны также попытаться НЕ использовать отдельные классы, но упаковать их как JAR вместо этого.