Запуск Java-программы из браузера без плагинов - PullRequest
2 голосов
/ 13 октября 2019

Несколько недель назад я написал небольшую Java-программу, показывающую график в реальном времени (т.е. записи с отслеживанием текущего времени), со скромной скоростью потоковой передачи 25 кбит / с, частотой кадров 20 кадров в секунду и отсутствием соответствующего взаимодействия с пользователем. Думая о его возможном развертывании в качестве мобильного приложения, диаграммы веб-сервера или просто как ПК в качестве программы, я считаю идеальный выбор для Java.

Прежде чем начать сейчас веб-версию этой программы, я начал исследовать и согласно Oracle White Paper 2016 года Переход с апплетов Java на подключаемые бесплатные технологии Java :

Устаревшая технология плагинов будет полностью удалена из Oracle Java Development Kit (JDK) и Java Runtime Environment (JRE) в будущем выпуске Java (TBD). Приложения Java Web Start не зависят от подключаемого модуля браузера и не будут затронуты этими изменениями.

И в соответствии с 2019 OpenWebStart :

JavaWeb Start (JWS) устарела в Java 9, и начиная с Java 11, Oracle удалила JWS из своих дистрибутивов JDK

И тогда я заблудился.

Следовательно, каков путь к такой Java-программе? Каков правильный устойчивый способ Java сделать это (и не подчиняться чему-то вроде того, что случилось с Java Web Start)?.

Или я должен просто перейти к другому способу сделать это, теперь, когда программа находится вего детство, учитывая, что я не совсем фанат Phyton , учитывая, что PHP не совсем подходит для программирования такого рода числовых вещей, и учитывая, что я не очень хочу давать Microsoftтехнологии шанс?

Для меня не проблема адаптировать и переписать мой текущий код, если это необходимо, но, возможно, я не делаю это каждые 5 лет.

Какую статью вы бы порекомендовали мне получитьвернуться на правильный путь?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 14 октября 2019

Как уже показало ваше исследование, Java больше не является релевантной веб-интерфейсной технологией . Вместо этого предпочтите Javascript и CSS для браузеров. Наполните код внешнего интерфейса данными, предоставляемыми внутренними службами Java. Спецификация сервлета Java по-прежнему является основой для серверной Java. Многие фреймворки (например, Spring или Jersey) созданы на его основе. Либо выберите одну из этих платформ, либо - для действительно простых случаев использования - создайте приложение только с простыми сервлетами. Любой сервлет должен быть развернут в контейнере сервлетов (например, Apache Tomcat).

Ваш Java-код, вероятно, нуждается в некотором рефакторинге, чтобы обеспечить API для Интернета. Поскольку вы запрашиваете связь почти в реальном времени, вам следует ознакомиться со стандартом WebSockets , который предназначен для двунаправленной и быстрой связи клиент-сервер в Интернете и поддерживается всеми современными браузерами (хорошее введение , объясняющее разницу с WebRTC и аргументирующее, почему WebSockets часто является лучшим выбором). Чтобы отобразить ваши данные в браузере с использованием Javascript и SVG, взгляните на библиотеку D3.js . Быстрый поиск приводит вас к таким демонстрациям: Диаграмма реального времени D3 . Кроме того, существуют другие библиотеки, построенные на основе D3, например plotly.js .

Резюме:

  • Java подходит для веб-серверных служб.
  • Ваш код нуждается в рефакторинге для обслуживания внутреннего API, предпочтительно WebSockets. (введение о том, как начать работу в Java, см. https://www.baeldung.com/java-websockets)
  • . Познакомьтесь с библиотекой графиков браузера Javascript, например D3.js .
.
0 голосов
/ 13 октября 2019

Это приложение для свинга? Придется сопоставить это с веб-приложением (html), чтобы оно теперь работало в браузере.

Вы не можете запустить любую из этих программ непосредственно из браузера.

Java использовалась для запуска Java-апплетов и запуска веб-приложений на Java - где браузер помогал вам установить Java-приложение в локальной системе, но пользователь должен был отдельно установить JRE (время выполнения Java), чтобы запустить его локально.

Теперь все, что у нас есть, это веб-приложения. в основном приложения, которые могут иметь сеанс, вход в систему, аутентификацию и авторизацию, но в конце приложение выводит HTML, Javascript, изображения и текстовые данные (JSON. XML и т. д.), которые отображаются на веб-странице.

Посмотрите наJ2EE. Я фанат Java. но это требует больше времени для развития, но я думаю, что это работает лучше. Особенно с хорошим фреймворком, таким как Spring Boot (он включает MVC, см. https://dzone.com/articles/7-best-java-frameworks-for-2016)

Но кривая обучения есть. Купите книгу или пройдите онлайн-курс, например, udemy или аналогичный. В YouTube есть бесплатные видео. Но не уверен впорядок / качество.

Если вы выберете php - многие бесплатные и дешевые серверы, такие как x10hosting, для начала и кривая обучения тоже не так хороши. Хорошие рамки - такие пакеты, как drupal и wordpress.

НаБраузер HTML, запуск Javacript. Для этого тоже есть рамки. Как и у Гоголя https://angular.io/, это тоже требует отдельной книги / отдельного исследования. В старые времена мы использовали простой Javascript ...

Для мобильных телефонов- иногда можно обойтись без использования URL-адреса, ИЛИ существуют рамки, которые оборачивают веб-страницу в «приложение» для Android, iPhone и т. д. ИЛИ создают нативное приложение, - но тогда у него будут разные базы кода.

Я знаюкто-то, кто использовал игровой движок для создания в основном единой базы кода (некоторые классы специфичны для каждой платформы, такой как android, iphone), но использовался для рендеринга бизнесаграфики и несколько вариантов использования взаимодействия (около 40). Он использовал https://libgdx.badlogicgames.com/

...