2015-06-10 28 views
5

Sono un programmatore di hobby che lavora allo sviluppo di un gioco Java (JApplet) che viene eseguito in una pagina web. Ho già completato la codifica e funziona bene quando si usa Netbeans ma sto avendo molti problemi a distribuirlo. L'ho firmato e funziona in modalità sandbox. Tuttavia, testandolo su un numero di computer diversi (Mac e PC) e diversi browser, nessuno di loro sembra voler eseguire facilmente le applet.Devo migrare da Applet e se sì a cosa?

Dopo aver guardato dentro, sembra che presentano un elevato rischio per la sicurezza (il motivo per cui i browser non sono appassionati di loro in esecuzione) e la ricerca "sono applet morti/non utilizzati" si trasforma in un sacco di risultati concordando. Ho cercato delle alternative e ho visto il seguente elenco.

  1. Java Web Start (a quanto pare anche morti)
  2. JWrapper (non sono sicuro io sono appassionato di terze parti supportato codice)
  3. Riavvia in Javascript/HTML5

non lo faccio Conoscere javascript o html5 quindi significherebbe partire da zero quindi non appassionato di questa opzione.

Java Web Start, forse non è morto come dicono le persone, ma non voglio fare affidamento su qualcosa che potrebbe non essere supportato dai browser tra un anno.

JWrapper ... sembra eseguire solo l'applicazione all'esterno di un browser e preferirei eseguirlo. Inoltre non sono sicuro di quanto tempo ci vorrà per trasferire da JApplet a JWrapper.

Apprezzerei molto alcune indicazioni su questo perché sto interpretando tre opzioni piuttosto discutibili.

Molte grazie in anticipo

Aggiornamento

Grazie per tutte le vostre risposte finora. Conferma le mie paure che sto lavorando su una tecnologia obsoleta!

Ho raccolto due cose.

  1. GWT per convertire Java in JavaScript: ho avuto una rapida occhiata a questo e anche se sembra che ci sia una piccola curva di apprendimento e potrebbe essere in grado di fare una soluzione rapida questa volta.
  2. La risposta fornita suggerisce che dovrei passare a JavaScript e HTML5. Il mio problema principale è che non ho voglia di passare sei mesi ad imparare una nuova lingua. Forse sono troppo preoccupato per la curva di apprendimento. Io programma in C, C++, Java, C# quindi sono abbastanza bravo con la codifica di base (imho) ma non ho mai fatto cose sul lato server. Qualcuno ha pensato a quanto tempo ci vuole per imparare?

Grazie

+1

Java nel browser è abbastanza morto a questo punto. Java sul desktop non sta andando così bene e alcuni browser hanno bandito i plugin dell'applet Java. – ssube

+0

Chrome non supporta più le applet, ha una quota di mercato [40-50%] (https://en.wikipedia.org/wiki/Usage_share_of_web_browsers). Questo è circa la metà dei browser che non supportano e non supporteranno mai l'applet. Le applet sono morte! Webstart non è diverso davvero, evita. Ti suggerisco di esaminare GWT, compila codice Java in un'applicazione JavaScript. Il tuo codice dovrebbe essere abbastanza facile da portare. –

+1

@ssube _Java sul desktop non sta andando così bene_ Cosa ?! Da dove l'hai preso ?! Java sul desktop sta andando bene. –

risposta

2

Se siete seriamente su di esso, si dovrebbe sicuramente andare con JavaScript/HTML5, perché è l'unica opzione disponibile in tutti i principali browser, tra cui le versioni mobili.

Se è solo un hobby, è comunque possibile utilizzare applet per il momento, ma si noti che Chrome, così come Edge (nuovo browser di Microsoft che dovrebbe sostituire Internet Explorer) non è più supporto per i plugin Java. Firefox dovrebbe ancora supportarlo per il futuro prevedibile, ma anche lo don't recommend utilizza plugin come Java. Safari lo supporta anche per ora.

Update 1

Mozilla announced che il sostegno NPAPI Plugin, tra cui Java, verrà rimosso dal Firefox entro la fine del 2016.

significa che gli unici browser tradizionali che ancora supporta le applet saranno Internet Explorer (che non è più sviluppato) su Windows, Safari su Mac OS X e niente su Linux.

Se si preferisce ancora utilizzare Java anziché JavaScript/HTML5, l'unica opzione valida è Java Web Start. Utilizza solo i browser per avviare le applicazioni Java che non interagiscono con il browser dopo il lancio.

Aggiornamento 2

Oggi Firefox 52 è stato rilasciato. Mozilla ha abbandonato il supporto per i plugin NPAPI incluso Java (Adobe Flash è l'unica eccezione) a partire da questa versione. Apple è preparing to do the same per Safari. Internet Explorer è l'unico browser principale rimasto con il supporto delle applet Java.

Oracle è deprecating the Applet API in Java 9.

+0

Sono d'accordo, la direzione in cui il web si sta dirigendo è una direzione assolutamente inutile. HTML5/CSS3 e Javascript rimarranno onnipresenti per il prossimo futuro e non richiedono nulla che non dovrebbe far parte di tutti i browser su piattaforme. – greggle138

+0

Ho fatto il salto in questa direzione. Lo sviluppo di Javascript così com'è non è sostenibile IMO. I moduli sono un hack, nessun risultato di typechecking in ore perse il debugging di stupidaggini che non sono possibili in Java, ci sono troppe variabili globali a meno che non si usi un framework, Angular è già alla v.2 e molto difforme di 1.x, ecc. Prevedo che prima del 2020 ci sarà un nuovo linguaggio simile a Java che rende lo sviluppo Web sicuro/facile (come è tipico di Java), ma produce codice che funziona in tutti i browser. Un po 'come [GWT] (https://en.wikipedia.org/wiki/Google_Web_Toolkit), ma popolare. – Fuhrmanator

0

prendere anche uno sguardo al Vaadin (https://vaadin.com/framework) come un modo di esecuzione di un'applicazione Java come HTML5 nel browser. Ha un modello di programmazione tutto in Java simile a GWT, ma gestisce anche le comunicazioni server-client automaticamente. È un progetto open source e ha una buona libreria di componenti.

0

È anche possibile utilizzare i messaggi nativi per comunicare l'applicazione nativa con un'estensione di Chrome o app di Chrome, ma questa soluzione funzionerà solo per Chrome.

Native Messages

In Firefox forse è possibile utilizzare:

js-ctypes

0

ho schierato con successo Java Web Start senza problemi a tutti in quanto il primo avvertimento che Chrome sarebbe abbandonando applet Java

Attualmente sto lavorando a una sostituzione utilizzando HTML5, fino a ora può fare circa il 50% di ciò che l'applet Java (o l'applicazione Java quando viene eseguita con Web Start) può fare

0

La versione di Firefox 52 può ancora eseguire applet Java. Nella pagina "about: config", creare un nuovo valore booleano "plugin.load_flash_only" con il valore "false". Oppure puoi utilizzare direttamente la versione ESR di Firefox (aziende). Spero che aiuti.