2013-09-30 13 views
51

Ho effettuato alcune ricerche su JavaFX nell'ultimo anno e ho persino creato alcune app desktop di base.JavaFX - può essere realmente distribuito in un browser?

È descritto come utilizzato per creare RIA (Rich Internet Application).

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

Ma può davvero essere distribuiti da un browser web? L'ho solo distribuito tramite un file JAR eseguibile.

Quanto è facile distribuire tramite browser web? Funziona? Qualcuno ha esperienza con questo?

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

+0

Perché preoccuparsi di utilizzare JavaFX nel browser? Basta attaccare con il solito stack. –

risposta

55

aggiornamento per Java 9, ottobre 2017

Secondo il Java 9 release notes:

applet Java e funzionalità WebStart, tra cui l'API Applet, il plug-in Java, Java Applet Viewer, JNLP e Java Web Start incluso lo strumento javaws sono tutti deprecati in JDK 9 e verranno rimossi in una versione futura.

Quindi, per Java 9+, l'implementazione di JavaFX in un browser che utilizza un plug-in Java sarà possibile solo utilizzando la tecnologia deprecata. Oracle fa notare in un'altra parte del Java 9 release notes:

depreca il plug-in Java e tecnologie applet associati nel JDK di Oracle 9 costruisce. Mentre sono ancora disponibili in JDK 9, queste tecnologie saranno prese in considerazione per la rimozione da Oracle JDK e JRE in una versione futura. Le applet e le applicazioni JavaFX incorporate in una pagina Web richiedono l'esecuzione del plug-in Java. Prendi in considerazione la possibilità di riscrivere questi tipi di applicazioni come Java Web Start o applicazioni autonome.

Nota: Java Web Start non è in realtà un'alternativa in quanto è anche deprecato (in ogni caso, è diverso da un'applicazione incorporata e renderizzata all'interno di una pagina del browser).

In alternativa, che offre funzionalità simili, prendere in considerazione qualcosa di simile jpro, che distribuisce applicazioni JavaFX in un browser senza un plug-in Java (jpro è attualmente solo in beta chiusa, quindi non è una soluzione praticabile a partire da ottobre 2017, ma forse un giorno in futuro ...).

Per ora, suggerirei che il modo migliore per distribuire le applicazioni JavaFX è come self-contained applications, in esecuzione all'esterno di un browser.


risposta precedente per Java 7 e 8

JavaFX - può veramente essere implementato in un browser?

Sì, le applicazioni JavaFX possono essere distribuite in modo che vengano eseguite all'interno di una pagina Web html ospitata nel browser Web.

La tecnologia che consente questo è il Java Plugin. Questo plugin è attualmente una soluzione plug-in basata su browser NPAPI. Il plug-in Java viene fornito con lo Oracle Java 7 Runtime Standard Environment.

Non tutti i browser sono supportati, solo quelli elencati su JavaFX Supported Configurations page.

Quanto è facile distribuire tramite browser web?

Il modo più semplice per distribuire un progetto JavaFX in un browser web è:

  1. Create a new JavaFX project in NetBeans.
  2. Develop a simple HelloWorld App.
  3. Seguire le istruzioni per Deploying your first JavaFX Application.

Questo non è difficile (a mio parere).

In alternativa, seguire le istruzioni sul riferimento dettagliato per Deploying JavaFX Applications (o utilizzare strumenti di terze parti). Per molti progetti, l'utilizzo di uno strumento diverso dall'ID NetBeans per eseguire il packaging è un approccio migliore. Tuttavia, in genere è più semplice consentire all'IDE NetBeans di gestire le attività di packaging di distribuzione.


Quanto segue non è relativo alla risposta alla domanda originale, ma fornisce alcune opinioni e informazioni richieste nei commenti su questa risposta.

Alcuni consigli

ci sono insidie ​​per la distribuzione di Java in un browser. Ti incoraggio a fare la tua ricerca Google sull'argomento.

A mio parere, in base all'attuale modello di distribuzione JavaFX 2.x, per la maggior parte dei tipi di applicazioni che richiedono un browser come contenitore di runtime primario, l'utilizzo di JavaFX non è una soluzione appropriata.

Esaminare i requisiti di implementazione e runtime per l'applicazione. In base alle proprie esigenze e alla conoscenza del modello di esecuzione basato sul browser JavaFX, decidere se una distribuzione basata su browser utilizzando la tecnologia JavaFX è il meccanismo corretto per la propria applicazione.

Un paio di potenziali difficoltà per il browser incorporato applicazioni JavaFX

Alcuni browser importanti (ad es Internet Explorer 10, iOS Safari e presto Desktop Chrome) non consentono l'esecuzione dei plugin che utilizzano il NPAPI attualmente utilizzato dal plugin per il browser Java = > alcuni dei tuoi utenti target potrebbero non essere in grado di utilizzare la tua applicazione.

Con un'applicazione incorporata nel browser, non si ha il controllo completo del runtime su cui viene eseguita l'applicazione (browser + Java runtime + interfaccia plugin) => un'applicazione che funzionava alla prima installazione potrebbe smettere di funzionare come previsto dopo un aggiornamento a questi componenti runtime.

distribuzione Alternative

Se un modello di distribuzione basato su browser non è appropriato per la vostra applicazione, ci sono altri modi per deploy JavaFX applications (ad esempio WebStart, barattoli stand-alone e le applicazioni self-contained).

+1

Grazie mille per i vostri commenti. Penso che faresti un grosso favore a tutti se potessi elencare solo le tue lamentele più frequenti sull'uso di JavaFX in un broswer. –

+2

OK, risposta aggiornata con un paio di potenziali difficoltà (non reclami). – jewelsea

+0

@jewelsea voglio eseguire javafx su andorid. L'ho letto qui https://bitbucket.org/javafxports/android/wiki/Building%20and%20deploying%20JavaFX%20Applications ma non sono riuscito a implementarlo ... darmi qualche suggerimento? –

2

Ho trovato la soluzione per caso here. cosa mancava nel mio progetto web.

devo aggiungere questo al file web.xml:

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

JavaFX - può veramente essere implementato in un browser?

No, non più.

La risposta utilizzato essere sì, come indicato nel this answer, sebbene anche nel 2013, quando è stato scritto che la scritta era sul muro. Tuttavia, qui nel 2016 la risposta è no, non può. I browser moderni essenzialmente non supportano più NPAPI (Firefox fa per Java, ma solo fino alla fine dell'anno) e NPAPI è richiesto per il plugin Java.

+0

interessante ... questa è una notizia strana per me –

8

A partire dal 2016 è possibile utilizzare jpro senza alcun plug-in del browser. E funziona anche su cellulari.

+0

dove posso conoscere questo @KIC –

+1

è stil beta puoi iscriverti per ricevere una notifica quando disponibile o (suppongo) chiedere un accesso beta. – KIC

+0

Qualcuno può mostrare un vero progetto di lavoro su questa tecnologia? – user2602807