JavaFX - действительно ли он может быть развернут в браузере? [закрытый]
Я сделал некоторые исследования на JavaFX за последний год, и даже построил некоторые основные настольные приложения с ним.
Он описан как используемый для создания RIAs (Rich Internet Application).
http://en.wikipedia.org/wiki/Javafx
но это действительно быть настроена с помощью веб-браузера? Я только развернул его через исполняемый файл JAR.
Как легко развернуть через веб-браузер? Это работает? Кто-нибудь есть опыт работы с этим?
http://docs.oracle.com/javafx/2/deployment/deployment_toolkit.htm
4 ответа:
обновление для дорожной карты Java-клиента марта 2018 года
Я призываю читателей, заинтересованных в этом вопросе, рассмотреть следующий технический документ Oracle:
в приведенном выше документе излагается официальная позиция Oracle по связанным технологиям (JavaFX / Swing/AWT/Applets / WebStart), даты, до которых он намерен поддерживать эти технологии и какие из этих технологий он намерен переход к проектам разработки с открытым исходным кодом отдельно от JDK и JRE.
обновление для Java 9, Oct 2017
по словам примечания к выпуску Java 9:
функциональность Java-апплета и WebStart, включая API апплета, подключаемый модуль Java, Средство просмотра Java-апплетов, jnlp и Java Web Start, включая инструмент javaws, являются устаревшими в JDK 9 и будут удалены в будущем освобождать.
таким образом, для Java 9+ развертывание JavaFX в браузере с использованием плагина Java будет возможно только с использованием устаревшей технологии. Oracle отмечает в другой части примечания к выпуску Java 9:
устаревает плагин Java и связанные с ним технологии апплетов в сборках JDK 9 Oracle. Хотя эти технологии все еще доступны в JDK 9, они будут рассмотрены для удаления из Oracle JDK и JRE в будущем выпуске. Аплеты и Приложения JavaFX, встроенные в веб-страницу, требуют запуска плагина Java. Рассмотрите возможность перезаписи этих типов приложений как Java Web Start или автономных приложений.
Примечание: Java Web Start на самом деле не является альтернативой, поскольку это также устарело (во всяком случае, это отличается от приложения, встроенного и отображаемого на странице браузера).
в качестве альтернативы, которая предлагает аналогичную функциональность, рассмотрим что-то вроде jpro, который развертывает Приложения JavaFX в браузере без плагина Java (jpro в настоящее время находится только в закрытой бета-версии, поэтому это не жизнеспособное решение по состоянию на октябрь 2017 года, но, возможно, когда-нибудь в будущем...).
на данный момент я бы рекомендовал, чтобы лучший способ развертывания приложений JavaFX был как автономные приложения, выполняющиеся вне браузера.
предыдущий ответ для Java 7 и 8
JavaFx-может ли он действительно быть развернут в a браузер?
да, приложения JavaFX могут быть развернуты так, чтобы они работали внутри веб-браузера, размещенного на веб-странице html.
технология, которая позволяет этому происходить является Java-Плагин. Этот плагин в настоящее время активировать решение на основе плагина браузера. Java-плагин поставляется вместе с Oracle Java 7 Runtime Standard Environment.
не все браузеры поддерживаются, только те, которые перечислены на страница поддерживаемых конфигураций JavaFX.
Как легко развернуть через веб-браузер?
самый простой способ развернуть проект JavaFX в веб-браузере:
- создайте новый проект JavaFX в NetBeans.
- разработать простое приложение HelloWorld.
- следуйте инструкциям для развертывание JavaFX с Применение.
Это не сложно (на мой взгляд).
в качестве альтернативы, следуйте инструкциям по подробной ссылке для Развертывание Приложений JavaFX (или использовать сторонние инструменты). Для многих проектов лучше использовать инструмент, отличный от IDE NetBeans, для выполнения упаковки. Тем не менее, как правило, проще разрешить IDE NetBeans обрабатывать задачи упаковки развертывания для вас.
Что следует не связано с ответом на исходный вопрос, но содержит некоторые мнения и информацию, запрошенную в комментариях к этому ответу.
Совет
есть подводные камни для развертывания Java в браузере. Я призываю вас сделать свое собственное исследование Google по этому вопросу.
на мой взгляд, на основе текущего JavaFX 2.X модель развертывания, для большинства типов приложений, которым требуется браузер в качестве основного контейнера среды выполнения, использование JavaFX не является соответствующее решение.
проверьте требования к развертыванию и времени выполнения для вашего приложения. Основываясь на ваших требованиях и знании модели выполнения на основе браузера JavaFX, решите, является ли развертывание на основе браузера с использованием технологии JavaFX правильным механизмом для вашего приложения.
несколько потенциальных трудностей для браузера встроенных приложений JavaFX
некоторые важные браузеры (например,Internet Explorer 10, iOS Safari и только Desktop Chrome) не разрешайте выполнение плагинов с помощью NPAPI, который в настоящее время используется плагином браузера Java => некоторые из ваших целевых пользователей могут не использовать ваше приложение.
с помощью встроенного приложения браузера у вас нет полного контроля над средой выполнения, в которой выполняется ваше приложение (браузер + Java runtime + plugin interface) => приложение, которое работало при первой установке, может остановиться после обновления эти компоненты среды выполнения.
Альтернативы Развертывания
Если модель развертывания на основе браузера не подходит для вашего приложения, есть другие способы развертывание приложений JavaFX (например, WebStart, автономные банки и автономные приложения).
JavaFX - действительно ли он может быть развернут в браузере?
нет, не больше.
ответ используется да, как указано в ответ, хотя даже в 2013 году, когда это было написано, надпись была на стене. Однако здесь, в 2016 году, ответ нет, он не может. Современные браузеры по существу больше не поддерживают NPAPI (Firefox делает это для Java, но только до конца года), и NPAPI требуется для плагина Java.
Я нашел решение случайно здесь. чего не хватало в моем веб-проекта.
Я должен добавить это в web.xml-файл:
<mime-mapping> <extension>jnlp</extension> <mime-type>application/x-java-jnlp-file</mime-type> </mime-mapping>