Newsgroup: it.comp.java
Titolo: Ma per Java serve un plug-in?

Scusate la domanda stupida, ma mi sorge un dubbio:
per poter eseguire un applet java è necessario un plug-in?
Cioè la virtual machine è compresa in tutti i browser o, per alcuni, è
necessario aggiungere qualcosa? E, se si, per quali browser e/o
versioni?
Grazie in anticipo. :)
Bye, Animanera. :)
--
"La vanita' : decisamente il mio peccato preferito." - L' Avvocato del
Diavolo
email : 
anim...@mailroom.com
icq : 40379995
Sent via Deja.com
http://www.deja.com/

 per poter eseguire un applet java è necessario un plug-in?
In generale tutti i browser "moderni" incorporano una Java Virtual Machine
(JVM) e quindi sono in grado di eseguire autonomamente le applet java, a
prescindere dalla presenza o meno sulla macchina client del Java Runtime
Environment (JRE) o del Java Plug-in di Sun.
Il problema semmai può stare nella versione del linguaggio Java implementato
dalle JVM incorporate nei vari browser. I browser più diffusi (ad esempio
Internet Explorer 5.x e Netscape 4.5x) sono fermi alla versione JDK 1.1 e
quindi non possono eseguire byte-code che si riferisca a classi o metodi
disponibili solo a partire da versioni successive del JDK.
Per ovviare alla lentezza di aggiornamento della JVM contenuta nei vari
browser -- ma anche per tentare di uniformare il comportamento delle applet
che talvolta varia da browser a browser per effetto delle diverse
implementazioni della relativa JVM -- Sun ha creato il Java Plug-in. In
pratica il Java Plug-in, installato sulla macchina client ed attivato
all'occorrenza da opportune TAG inserite all'interno del file html, fa in
modo che l'applet venga eseguita utilizzando il JRE di Sun (che deve essere
anch'esso installato sulla macchina client) invece che la JVM interna del
browser.
Così facendo, è come se il browser disponesse di una JVM aggiornata alla
versione di Java implementata dal JRE utilizzato (ad esempio JDK 1.3) In
questo modo è possibile far girare all'interno del browser applet che
sfruttano le caratteristiche più aggiornate del linguaggio Java, prime fra
tutte la gestione della sicurezza "fine-grained" e la possibilità di
costruire l'interfaccia grafica utilizzando Swing.
Se invece vuoi fare a meno del Java Plug-in, o utilizzi un browser che
implementi una versione più recente del linguaggio Java (ad esempio HotJava
di Sun, che però soffre di altre limitazioni; gli aggiornamenti di altri
browser stanno uscendo proprio in questo periodo), oppure limiti il codice
delle tue applet in modo che sia strettamente JDK 1.1 compatibile (ovvero
niente Swing, sicurezza, niente versioni modificate o aggiornate delle
classi java.util.* ecc.)
Per la cronaca, il linguaggio Java 2 è compatibile (se compilato con gli
switch di default) a livello di byte-code col linguaggio 1.1, ma contiene
rispetto a quest'ultimo un sacco di aggiornamenti e modifiche. Quindi una
JVM 1.1 sarà in grado di interpretare il byte-code prodotto dal compilatore
Java 2 anche se contenente riferimenti a feature nuove del linguaggio, ma si
bloccherà inesorabilmente alla prima chiamata di un metodo o di una classe
che non conosce perché disponibile solo a partire da versioni successive del
linguaggio stesso (è il classico caso delle applet che funzionano a
meraviglia col Java Plug-in, ma si bloccano quando vengono eseguite senza).
Risposta lunga, ma credo che il tuo dubbio meritasse un chiarimento un po'
più approfondito.
Marco.
--
Per scrivermi direttamente elimina
__TOGLIMI__ dall'indirizzo e-mail.

 beh utilizzate Java Plug-in: vi risparmierete una miriade di problemi!
Direi più che altro di stare attenti alle varie versioni del linguaggio
perché, con un browser "vecchio", può essere necessario il Java Plug-in.
Sta tutto in quello che si vuole fare ed in quante "noie" (scaricare il
Plug-in
ed il JRE) si vogliono dare agli utenti della propria applet.


 ... non così il W3C ;)
Sei sicuro? Già che siamo in vena di pignolerie... ;-)
Tratto dalle specifiche HTML 4.01
(
http://www.w3.org/TR/1999/REC-html401-19991224
):
--- cut here ---
1.2.1 Elements and attributes
Element names are written in uppercase letters (e.g., BODY). Attribute names
are written in lowercase letters (e.g., lang, onsubmit). Recall that in
HTML, element and attribute names are case-insensitive; the convention is
meant to encourage readability.
--- cut here ---
L'ultima frase mi sembra autorizzi ognuno a fare come gli pare visto che si
tratta di una convenzione pratica (per aumentare la leggibilità) e non di un
requisito (l'HTML è di per sé case-INsensitve).
Quindi, ribadisco, questione di gusti!
P.S.: da domani scriverò le mie tag così: <AppLeT>...</aPPLet> 8-)


 più approfondito.
Hai fatto bene, ora il concetto mi è molto più chiaro.
Grazie infinite! :)
Bye, Animanera. :)


> No, se non usi Swing.
Le Swing possono essere usate tranquillamente, anche in applet eseguite su
macchine virtuali ferme alla versione 1.1.x
FA
-- 
**  Franco Alberto Cardillo       
**  Computer Science student, Pisa (Italy)  
**  
http://www.cli.di.unipi.it/~cardillo
 
 

 macchine virtuali ferme alla versione 1.1.x
"Tranquillamente" non mi sembra il termine più appropriato. Devi avere
swing.jar, devi fare in modo che il browser se ne accorga 8-( e devi
rinunciare alle varie migliorie introdotte dalla versione JDK 1.2. Meglio di
gran lunga il Java Plug-in o un browser Java 2 compatibile.


 Marco.
Mi inserisco nelle battute per portare il mio caso, il quale sembra venire a
fagiolo.
Se avete la soluzione, ditemelo............ vi prego!
Dunque ho scritto un applet che sfrutta Swing.
L'ho scritto pensando in futuro di farlo diventare un'applicazione, quindi
in realtà l'applet (JApplet) lancia un frame (JFrame) che è l'applicazione
vera e propria.
Ho inserito nell'applet anche il metodo main() per farlo partire come
applicazione.
Ho sviluppato tutto basandomi sui risultati dell'appletviewer fornito con il
JDK (ah, ho installato il 1.3, runtime compreso..), cioè ho usato un editor
che si appoggiava all'appletviewer per visulaizzare il file html con
l'applet.
Scusate la lungaggine ma più cerco di essere chiaro, più forse è facile che
mi riusciate a dare una mano...
Dopo mesi di duro lavoro, l'appletviewer mi fa inorgoglire.... che figata!
tutto funziona a doovere.
Allora decido di provarlo con un browser.
Provo IE5.5...... niente, solo "class pippo not found".
Vengo sul newsgroup è leggo che IE non ha la JVM aggiornata al kit della SUN
con Swing.......
Provo con Netscape 6, che invece dovrebbe esserlo.
Niente. Lui dice "Applet pippo notinited".
Provo con HTMLConverter e i due browser. Niente.
Nell'applet utilizzo il metodo getCodeBase() di JApplet per passare la
stringa contenente il path dell file con l'applet (mi serve
nell'applicazione) e mi sono accorto che devo considerare stringhe di
lunghezza diverse per avere il corretto path a seconda che usi
l'appletviewer da solo o che usi l'editor(JPadPro) appoggiato
all'appletviewer.
Nel metodo main passo direttamente il path in stringa perchè non ho ancora
sviluppato la versione applicativa e mi serve se solo per vederlo funzionare
da applicazione.
Ad esempio getCodeBase restituisce:
    file:/C:/directory/file.html
Idee???
Grazie
Federico