stringtranslate.com

Веб-старт Java

В сфере вычислений Java Web Start (также известный как JavaWS , javaws или JAWS ) представляет собой устаревшую структуру, разработанную Sun Microsystems (теперь Oracle ), которая позволяет пользователям запускать прикладное программное обеспечение для платформы Java непосредственно из Интернета с помощью веб-браузера . Эта технология обеспечивает беспрепятственное обновление версий глобально распределенных приложений и больший контроль над выделением памяти виртуальной машине Java .

Java Web Start распространялся как часть платформы Java до тех пор, пока не был удален в Java SE 11 после прекращения его поддержки в Java SE 9. Код для Java Web Start не был выпущен Oracle как часть OpenJDK , и поэтому OpenJDK изначально не поддерживал это. IcedTea-Web предоставляет независимую реализацию Java Web Start с открытым исходным кодом, которая в настоящее время разрабатывается сообществом AdoptOpenJDK , RedHat и Karakun AG и входит в состав некоторых установщиков OpenJDK. [1] Помимо этого, OpenWebStart предоставляет реализацию с открытым исходным кодом , основанную на IcedTea-Web, но предлагающую больше функций и вариантов коммерческой поддержки.

Функциональность

В отличие от Java-апплетов , приложения Web Start не запускаются внутри браузера. По умолчанию они запускаются в той же песочнице , что и апплеты, с несколькими незначительными расширениями, например, позволяющими загружать и сохранять файл, явно выбранный пользователем через диалоговое окно выбора файла. Только подписанные приложения могут быть настроены на получение дополнительных разрешений.

Web Start имеет преимущество перед апплетами в том, что он преодолевает многие проблемы совместимости с Java- плагинами браузеров и различными версиями JVM . Программы Web Start больше не являются интегрированной частью веб-страницы, а представляют собой независимые приложения, работающие в отдельном фрейме.

Web Start также может запускать немодифицированные апплеты, упакованные в файлы .jar, путем записи соответствующего файла JNLP. Этот файл также может передавать параметры апплета. Такие апплеты также запускаются в отдельном фрейме. Средство запуска апплетов может не поддерживать некоторые конкретные случаи, например загрузку класса в качестве ресурса.

Как и апплеты, Java Web Start является кроссплатформенным .

Устаревание

В JDK9 несколько технологий развертывания, включая апплеты и Java Web Start, были признаны Oracle устаревшими. [2] [3]

В марте 2018 года Oracle объявила, что не будет включать Java Web Start в Java SE 11 (18.9 LTS) и более поздние версии. Разработчикам придется перейти на другие технологии развертывания. [4] С тех пор появилось несколько самостоятельных альтернатив.

Выполнение

Ранние версии Java Web Start включали менеджер приложений, с помощью которого можно было запускать, например, демонстрационные приложения Sun.

Разработчик готовит специальный XML-файл с расширением JNLP. В этом файле описаны требования приложения, расположение кода, параметры и дополнительные разрешения (если есть). Браузер загружает этот файл, как и любой другой, и (в соответствии с его MIME-типом , application/x-java-jnlp-file) открывает его с помощью инструмента Web Start. Инструмент Web Start загружает все необходимые ресурсы и запускает приложение.

Java Web Start предоставляет ряд классов в пакете javax.jnlp , которые предоставляют приложению различные сервисы. Компания Sun разработала большинство этих сервисов с целью обеспечить тщательно контролируемый доступ к ресурсам (таким как файлы и системный буфер обмена), одновременно ограничивая приложения авторизованными операциями.

Sun представила версию 1.0 Web Start в марте 2001 года [5] , в то время как поддержка 64-битной Windows была добавлена ​​только в Java 6 [6] (позже, чем 64-битная Java была впервые доступна). Поскольку J2SE 1.4 Web Start входит в состав среды выполнения Java (JRE) по умолчанию javaws, администраторам компьютеров больше не нужно устанавливать его отдельно.

Протокол запуска сети Java (JNLP)

Программисты часто говорят о протоколе запуска сети Java ( JNLP ) как синониме термина «Web Start». Протокол JNLP, определенный с помощью схемы XML , определяет, как запускать приложения Java Web Start. JNLP состоит из набора правил, определяющих, как именно реализовать механизм запуска. Файлы JNLP содержат такую ​​информацию, как расположение файла пакета jar и имя основного класса приложения, а также любые другие параметры программы. Правильно настроенный браузер передает файлы JNLP в среду выполнения Java (JRE), которая, в свою очередь, загружает приложение на компьютер пользователя и начинает его выполнение. Разработка JNLP происходила в рамках процесса сообщества Java под названием JSR 56. Он включает в себя исходную версию 1.0, последующую вспомогательную версию 1.5, а с 2006 года - ожидающую вспомогательную версию 6.0. [ объяснить ]

Важные функции Web Start включают возможность автоматической загрузки и установки JRE в случае, если у пользователя не установлена ​​Java, а также возможность программистам указать, какая версия JRE необходима данной программе для выполнения. Пользователю не обязательно оставаться подключенным к Интернету для выполнения загруженных программ, поскольку они выполняются из локально поддерживаемого кэша . Обновления программного обеспечения загружаются из Интернета и становятся доступными, когда у пользователя есть подключение к Интернету, что упрощает развертывание.

Любой пользователь компьютера может использовать JNLP, просто установив клиент JNLP (чаще всего Java Web Start). Установка может происходить автоматически, так что конечный пользователь увидит, как средство запуска клиента загружает и устанавливает приложение Java при первом запуске.

JNLP работает аналогично тому, как HTTP/HTML работает в Интернете. Для рендеринга веб-страницы HTML после того, как пользователь нажимает на веб-ссылку, браузер отправляет URL-адрес веб -серверу , который отвечает HTML-файлом. Затем браузер запрашивает ресурсы, на которые ссылается этот файл (изображения, css ), и, наконец, отображает страницу, как только получит достаточно информации. Рендеринг страницы обычно начинается до загрузки всех ресурсов; некоторые ресурсы, не имеющие решающего значения для макета страницы (например, изображения), могут быть добавлены позже.

JNLP отражает этот процесс; Точно так же, как веб-браузер отображает веб-страницу, клиент JNLP «отрисовывает» Java-приложение . После того, как пользователь нажимает на веб-ссылку, браузер отправляет URL-адрес веб-серверу, который отвечает файлом JNLP (вместо файла HTML) для приложения. Клиент JNLP анализирует этот файл, запрашивает указанные ресурсы (файлы jar), ожидает получения всех необходимых ресурсов, а затем запускает приложение. Файл JNLP может перечислять ресурсы как «ленивые», что информирует клиента JNLP о том, что приложению не нужны эти ресурсы для запуска, но он может получить их позже, когда/если приложение их запросит.

Пример

В приведенном ниже примере представлен простой файл JNLP для запуска апплета с указанием базы кода, источника, основного класса и размера окна. Такой файл содержит все необходимые ссылки и самодостаточен для запуска приложения. Поскольку разрешения не запрашиваются, код будет выполняться в «песочнице». JNLP также заявляет, что это приложение может работать в автономном режиме (если оно уже кэшировано) и его следует обновлять в фоновом режиме.

<?xml version="1.0"coding="UTF-8"?> <jnlp spec= "1.0+" codebase= "http://ultrastudio.org/upload" href= "" > <information> <title> Запуск апплет с веб- запуском </title> <vendor> Foo Bar Inc. </vendor> <offline-allowed/> </information> <resources> <j2se version= "1.5+" href= "http://java.sun .com/products/autodl/j2se" /> <jar href= "Ray-2.3-4ca60e46-0956-3f22-983c-e3ed986dfd03.jar" main= "true" /> </resources> <applet-desc name= " Апплет диаграммы лучей" main-class= "raydiagramsapplet.Main" width= "300" height= "200" > </applet-desc> <update check= "background" /> </jnlp>                               

Компрессия Pack200

Чтобы уменьшить размер приложения Java Web Start, компания Sun Microsystems представила в Java 1.5.0 систему сжатия Pack200 . Он может сжать большой jar-файл до одной девятой его исходного размера, если он содержит только классы Java. [7]

Java Web Start поддерживает Pack200 с момента его первого появления, но изначально эта функция требовала сотрудничества на стороне сервера и определенного опыта для настройки. Когда Sun представила Java SE 6u10, поддержка Pack200 стала доступна без необходимости специальной поддержки сервера. Разработчики приложений могут включать или отключать эту функцию в файлах JNLP.

При медленных соединениях Pack200 увеличивает производительность, сокращая время запуска приложений и время загрузки.

Подписанные приложения Web Start

По умолчанию приложения Java Web Start работают «с ограничениями», что означает, что они не имеют доступа к некоторым системным ресурсам, таким как локальные файлы. Но издатели могут снять эти ограничения, подписав свои приложения Web Start с помощью jarsignerинструмента, входящего в состав JDK .

Альтернативы

Проект IcedTea с открытым исходным кодом предоставляет альтернативную реализацию JNLP в IcedTea-Web . Начиная с версии 1.7.2, он также работает в более новых версиях без официальной поддержки JWS. [8]

Для запуска приложения на базе Java Web Start после выпуска Java 11 компания Karakun AG выпустила инструмент с открытым исходным кодом OpenWebStart, основанный на IcedTea-Web. [9] Инструмент включает в себя все функциональные возможности IcedTea-Web и добавляет расширенные функции, такие как встроенные установщики для Mac OS, Windows и Linux. IcedTea-Web был создан при поддержке RedHat и AdoptOpenJDK . [10]

Известные приложения

Смотрите также

Рекомендации

  1. ^ ojdkbuild - WebStart, 29 апреля 2019 г. , получено 31 мая 2019 г.
  2. ^ Примечания к выпуску JDK9
  3. ^ https://blogs.oracle.com/java-platform-group/moving-to-a-plugin-free-web [ пустой URL-адрес ]
  4. ^ «Обновление дорожной карты клиента Java» (PDF) . Март 2018 г. Oracle не будет включать Java Web Start в Java SE 11 (18.9 LTS) и более поздние версии. Oracle начнет поощрять разработчиков приложений и пользователей переходить с Java Web Start и поощрять некоммерческих потребителей удалять со своих рабочих столов все неиспользуемые или неподдерживаемые установки Oracle JRE.
  5. ^ Пресс-релиз Java Web Start 1.0
  6. ^ Идентификатор ошибки 4802695, поддержка 64-битного подключаемого модуля Java и веб-запуска Java в Windows/Linux на AMD64.
  7. ^ Pack200 и сжатие для сетевого развертывания
  8. ^ Icedtea-web. реализация веб-старта с открытым исходным кодом
  9. ^ "ОпенВебСтарт". ОпенВебСтарт . Проверено 20 июля 2020 г.
  10. ^ Хендрик (10 декабря 2019 г.). «Как открытый исходный код спас WebStart». ГуйГараж . Проверено 20 июля 2020 г.

Внешние ссылки