Как развернуть приложение Java Swing в веб-браузере? - PullRequest
0 голосов
/ 12 апреля 2020

Я нашел точно такой же вопрос, который только что задал, но ему 7 лет; поэтому я хотел бы получить "обновленный" ответ, если это возможно. Спасибо.

1 Ответ

4 голосов
/ 12 апреля 2020

Старые дни

Как отметили в TrogDor , ранее было два способа развертывания приложения Swing через Интернет:

  • Java Апплет технология Ваше приложение будет отображаться в прямоугольнике на веб-странице в браузере.
  • Java Технология Web Start Если щелкнуть ссылку на веб-странице, можно будет загрузить копию приложения Swing на локальный компьютер пользователя, где ваше приложение будет запускаться локально с использованием локально установленной JVM . Таким образом, ваше приложение работает отдельно от веб-браузера. Этот процесс загрузки и запуска по клику определяется Java Протоколом запуска сети (JNLP) .

Оба эти постепенно. Подробности см. В официальном документе Java Обновление дорожной карты клиента , опубликованном Oracle 2018-03.

В настоящее время

Современный подход заключается в создании приложения Swing и / или JavaFX с последующим развертыванием с использованием инструмента упаковки для включения JVM , В итоге вы получаете полностью автономное самозапускаемое приложение.

Это означает, что вам нужно несколько сборок, по одному приложению для каждой платформы, на которой могут развертываться ваши пользователи (macOS, Linux, BSD, Windows и т. Д.). Хотя это является дополнительным бременем для вас, оборотной стороной является то, что вы точно контролируете, какая версия Java используется для запуска вашего приложения.

Из-за Java System Platform Module ( JSR 376 ) в Java 9 и более поздних версиях, теперь вы можете сократить объединенную JVM и библиотеки, чтобы включить только те части, которые фактически используются вашим конкретным приложением.

Инструменты сборки для упаковки вашего приложения в последние годы быстро развиваются. Поэтому не забудьте провести исследование, чтобы найти наиболее надежный и современный инструмент.

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

OpenWebStart

Возможно, вас заинтересует отдельная реализация Java Web Start технология.

Пока Oracle постепенно прекращает работу Java Web Start , существует реализация с открытым исходным кодом JSR 56 называется OpenWebStart . См. GitHub . Этот проект в настоящее время поддерживается компанией Каракун , основанной на базовой функциональности IcedTea-Web , разработанной в AdoptOpenJDK .

GraalVM

Передовой альтернативой является создание полностью нативной заранее скомпилированной версии вашего приложения. использование GraalVM .

Vaadin Flow

Совершенно другой способ создания веб-приложения с использованием Java - Vaadin Flow рамки.

Вы определяете свои макеты пользовательского интерфейса с виджетами способом, очень похожим на Swing. Вы можете сделать это, используя выбранный вами код Java, язык описания на основе XML или инструмент визуального дизайна.

Во время выполнения Vaadin автоматически генерирует HTML, CSS и JavaScript, необходимые для удаленной визуализации вашего приложения на компьютере клиента в веб-браузере. Таким образом, у вас есть чистый Java на стороне сервера, и Java на стороне клиента, только технологии веб-стандартов , встроенные во все современные браузеры.

Подробнее

Все это уже много раз освещалось в Переполнении стека. Так что ищите, чтобы узнать больше.

Советы по получению JVM для комплектации с вашим приложением см. В Как заставить java 11 среду выполнения работать, так как больше нет jre 11 для скачивания? .

...