browser javafx ria

browser - JavaFX: ¿realmente se puede implementar en un navegador?



ria (4)

JavaFX: ¿realmente se puede implementar en un navegador?

No, no más.

La respuesta solía ser sí, como se indica en esta respuesta , aunque incluso en 2013, cuando se escribió, la escritura estaba en la pared. Sin embargo, aquí en 2016 la respuesta es no, no puede. Los navegadores modernos ya no son compatibles con NPAPI (Firefox lo hace para Java, pero solo hasta fin de año) y NPAPI es necesario para el complemento de Java.

Investigué JavaFX durante el último año e incluso construí algunas aplicaciones de escritorio básicas.

Se describe como usado para crear RIA (Rich Internet Application).

http://en.wikipedia.org/wiki/Javafx

¿Pero puede realmente ser implementado por un navegador web? Solo lo he implementado a través de un archivo JAR ejecutable.

¿Qué tan fácil es implementarlo a través del navegador web? ¿Funciona? ¿Alguien tiene experiencia con esto?

http://docs.oracle.com/javafx/2/deployment/deployment_toolkit.htm


A partir de 2016, puede usar jpro sin ningún plugin de navegador. E incluso se ejecuta en teléfonos móviles.

Edición 1: el proyecto es gratuito para proyectos no comerciales o de código abierto. Un "hola mundo" se puede encontrar here


Encontré una solución por casualidad here . lo que faltaba en mi proyecto web.

Debo agregar esto al archivo web.xml:

<mime-mapping> <extension>jnlp</extension> <mime-type>application/x-java-jnlp-file</mime-type> </mime-mapping>


Actualización para la hoja de ruta del cliente Java de marzo de 2018

Animo a los lectores interesados ​​en esta pregunta a revisar el siguiente Whitepaper de Oracle:

El documento anterior describe la posición oficial de Oracle en tecnologías relacionadas (JavaFX / Swing / AWT / Applets / WebStart), las fechas hasta las cuales pretende respaldar esas tecnologías y cuál de esas tecnologías pretende pasar a proyectos de desarrollo de código abierto independientes del JDK y JRE.

Actualización para Java 9, octubre de 2017

De acuerdo con las notas de la versión de Java 9 :

Las funcionalidades Java Applet y WebStart, incluidas Applet API, Java, Applet Viewer, JNLP y Java Web Start, incluida la herramienta javaws, están obsoletas en JDK 9 y se eliminarán en versiones futuras.

Por lo tanto, para Java 9+, la implementación de JavaFX en un navegador utilizando un complemento de Java solo será posible con la tecnología en desuso. Notas de Oracle en otra parte de las notas de la versión de Java 9 :

Desprecia el Java Plug-in y las tecnologías de applets asociados en las compilaciones Oracle JDK 9. Mientras aún estén disponibles en JDK 9, estas tecnologías serán consideradas para su eliminación de Oracle JDK y JRE en una versión futura. Las aplicaciones Applets y JavaFX integradas en una página web requieren que se ejecute Java Plug-in. Considere volver a escribir estos tipos de aplicaciones como Java Web Start o aplicaciones autónomas.

Nota: Java Web Start no es realmente una alternativa, ya que también está en desuso (de todos modos, es diferente de una aplicación incrustada y representada en una página del navegador).

Como una alternativa que ofrece una funcionalidad similar, considere algo como jpro , que implementa aplicaciones JavaFX en un navegador sin un plugin Java (actualmente, jpro solo está en beta cerrada, por lo que no es una solución viable a partir de octubre de 2017, pero tal vez algún día en el futuro...).

Por ahora, recomendaría que la mejor forma de implementar aplicaciones JavaFX sea como aplicaciones autónomas , que se ejecutan fuera de un navegador.

Respuesta anterior para Java 7 y 8

JavaFx: ¿realmente se puede implementar en un navegador?

Sí, las aplicaciones JavaFX se pueden implementar para que se ejecuten dentro de una página web html alojada en un navegador web.

La tecnología que permite que esto ocurra es el plugin de Java . Este complemento es actualmente una solución de complemento de navegador basado en NPAPI . El complemento de Java se envía con el entorno estándar de Oracle Java 7 Runtime .

No todos los navegadores son compatibles, solo los que figuran en la página Configuraciones admitidas de JavaFX .

¿Qué tan fácil es implementarlo a través del navegador web?

La forma más fácil de implementar un proyecto JavaFX en un navegador web es:

  1. Crea un nuevo proyecto JavaFX en NetBeans .
  2. Desarrolla una aplicación HelloWorld simple .
  3. Siga las instrucciones para implementar su primera aplicación JavaFX .

Esto no es difícil (en mi opinión).

Alternativamente, siga las instrucciones en la referencia detallada para Desplegar aplicaciones JavaFX (o use herramientas de terceros). Para muchos proyectos, usar una herramienta que no sea NetBeans IDE para realizar el empaquetado es un mejor enfoque. Sin embargo, generalmente es más fácil dejar que NetBeans IDE maneje las tareas de empaquetado de implementación por usted.

Lo que sigue no está relacionado con la respuesta a la pregunta original, sino que proporciona algunas opiniones y la información solicitada en los comentarios sobre esta respuesta.

Algún consejo

Existen dificultades para implementar Java en un navegador. Te animo a que hagas tu propia investigación de Google sobre el tema.

En mi opinión, basado en el actual modelo de implementación JavaFX 2.x, para la mayoría de los tipos de aplicaciones que requieren un navegador como el contenedor de tiempo de ejecución principal, el uso de JavaFX no es una solución adecuada.

Examine los requisitos de despliegue y tiempo de ejecución para su aplicación. En función de sus requisitos y del conocimiento del modelo de ejecución basado en el navegador JavaFX, decida si un despliegue basado en navegador que utiliza tecnología JavaFX es el mecanismo correcto para su aplicación.

Un par de posibles dificultades para las aplicaciones JavaFX incluidas en el navegador

Algunos navegadores importantes (por ejemplo, Internet Explorer 10 , iOS Safari y pronto Desktop Chrome ) no permiten la ejecución de complementos utilizando el NPAPI utilizado actualmente por el complemento del navegador Java => algunos de sus usuarios objetivo pueden no ser capaces de utilizar su aplicación.

Con una aplicación insertada en el navegador, no tiene control total sobre el tiempo de ejecución en el que se ejecuta la aplicación (navegador + interfaz de plugin Java runtime +) => una aplicación que funcionaba cuando se instaló por primera vez puede dejar de funcionar como se esperaba después de una actualización componentes de tiempo de ejecución.

Alternativas de despliegue

Si un modelo de implementación basado en un navegador no es apropiado para su aplicación, existen otras formas de implementar aplicaciones JavaFX (por ejemplo, WebStart, tarros independientes y aplicaciones autónomas).