Jump to content

Веб-старт Java

(Перенаправлено с JNLP )

В области вычислений 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" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://ultrastudio.org/upload" href="">
    <information>
        <title>Launch applet with Web Start</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="Ray diagram applet" main-class="raydiagramsapplet.Main" width="300" height="200">
    </applet-desc>
  <update check="background"/>
</jnlp>

Компрессия Pack200

[ редактировать ]

Чтобы уменьшить размер приложения Java Web Start, компания Sun Microsystems представила систему сжатия Pack200 в Java 1.5.0 . Он может сжать большой 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. ^ Топич, Далибор (27 января 2016 г.). «Переход к сети без плагинов» .
  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.12.2019). «Как открытый исходный код спас WebStart» . ГуйГараж . Проверено 20 июля 2020 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: cc9bffa2c14231a65a0ed2bb5511767e__1720096860
URL1:https://arc.ask3.ru/arc/aa/cc/7e/cc9bffa2c14231a65a0ed2bb5511767e.html
Заголовок, (Title) документа по адресу, URL1:
Java Web Start - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)