Collegati a Java con Java Plug-in

Man mano che la tecnologia Java matura, Sun Microsystems (il creatore di Java) rilascia nuove versioni di Java tramite Java Development Kit (JDK). Netscape e altri fornitori di browser supportano ogni nuova versione aggiungendo il componente runtime di quella versione, il Java Runtime Environment (JRE), alla successiva iterazione dei loro browser. Tuttavia, il lasso di tempo tra l'introduzione da parte di Sun di una nuova versione di Java e il rilascio dei browser che la supportano ha frustrato gli sviluppatori di intranet aziendali che hanno bisogno di utilizzare le ultime funzionalità di JRE (e le correzioni di bug). E il rifiuto di Microsoft di supportare completamente JRE in Internet Explorer 4.0 e 5.0 ha reso la situazione ancora più frustrante per gli sviluppatori.

Sun ha una soluzione a questi problemi. Questa soluzione aggira il fornitore e si affida alla tecnologia plug-in per distribuire i JRE più recenti.

Un plug-in architettura - essenzialmente la combinazione di un'architettura e plug-in - è una specifica e l'attuazione di quella parte di un browser che carica dinamicamente i plug-in, se necessario. Sia Netscape che Microsoft hanno aggiunto questa architettura ai loro browser. (Le implementazioni effettive dell'architettura sono abbastanza diverse: Netscape utilizza una semplice implementazione eseguibile, mentre Microsoft utilizza la sua implementazione del modello a oggetti ActiveX.)

Un plug-in è un codice eseguibile archiviato in un file di libreria. Quando viene fatto riferimento tramite speciali tag HTML, il browser carica questa libreria, tramite la sua architettura plug-in, e inizia a eseguire il codice della libreria. (Se ti sei mai imbattuto in una pagina Web che fa riferimento a Shockwave di Macromedia o VXtreme Web Theater, hai visto esempi di plug-in al lavoro.)

La soluzione di Sun è la creazione di un plug-in per Java, noto come Java Plug-in.

Cos'è Java Plug-in?

Java Plug-in è un prodotto software che funge da ponte tra un browser e un JRE esterno. Uno sviluppatore "dice" al browser di utilizzare questo JRE esterno inserendo speciali tag HTML su una pagina Web. Fatto ciò, un browser può eseguire applet Java o componenti JavaBeans che hanno accesso a tutte le funzionalità (entro i limiti del modello di sicurezza di Java) di questo JRE esterno.

Sun ha rilasciato Java Plug-in 1.1 nell'aprile '98. Poco dopo, JavaWorld ha intervistato i suoi lettori per valutare la reazione a questo prodotto. Sono seguite le versioni di manutenzione del plug-in Java 1.1.1 e 1.1.2. (Vedi Risorse per i dettagli sul sondaggio JavaWorld e sui rilasci di Java Plug-in.)

In concomitanza con il rilascio di JDK 1.2 (ora noto come piattaforma Java 2), Sun ha rilasciato Java Plug-in 1.2. Tuttavia, a differenza delle versioni precedenti, questa versione è attualmente disponibile solo per la piattaforma Microsoft Windows (95/98 / NT). Sun sta attualmente lavorando per rendere disponibile Java Plug-in 1.2 per la sua piattaforma Solaris.

Questo articolo esplora Java Plug-in 1.2, iniziando con una discussione su come scaricare e installare questa tecnologia. Si basa sulla mia esperienza nell'uso del plug-in Java 1.2 con i browser Internet Explorer 3.02 e Netscape Communicator 4.5, con il sistema operativo Windows 95.

Collegati!

Java Plug-in 1.2 è attualmente fornito con JRE 1.2. Se si desidera preinstallare il plug-in Java, scaricare e installare JRE 1.2 dal sito Web di Sun, a cui è possibile accedere nella sezione Risorse. Oppure puoi scegliere di far scaricare il plug-in Java dal tuo browser (con un intervento minimo da parte tua, a seconda del browser) quando "navighi" in una pagina Web che fa riferimento a quel plug-in. Ecco come:

Quando un browser trova una pagina Web che richiede l'uso del plug-in Java, verifica se il plug-in Java è stato installato sulla stessa macchina del browser. In caso contrario, il browser deve scaricare e installare i file richiesti. Il modo in cui funziona dipende dal tuo browser, quindi esamineremo queste differenze in seguito.

Netscape Communicator 4.5

Se stai utilizzando Netscape Communicator, una pagina Web contenente il tag HTML che fa riferimento a Java Plug-in attiverà il download. Esploreremo più avanti in questo articolo. Per ora è sufficiente sapere che contiene informazioni che dicono al browser quale plug-in è richiesto e dove ottenerlo. La figura 1 mostra la pagina di download iniziale che viene visualizzata quando Communicator rileva una pagina Web che fa riferimento a un plug-in non installato.

Se si fa clic sull'immagine in quella pagina, Communicator visualizza una finestra di dialogo "Plug-in non caricato" come quella mostrata nella Figura 2.

Questa finestra di dialogo ci mostra che il browser sa esattamente di cosa ha bisogno (un plug-in per application/x-java-applet;version=1.2) e dove ottenerlo (//java.sun.com/products/plugin/1.2/plugin-install.html).

Quindi cosa succede quando fai clic sul pulsante "Ottieni il plug-in"? Il browser passa dalla pagina corrente alla pagina specificata dall'indirizzo Internet nella finestra di dialogo. Da quella pagina, segui le indicazioni per scaricare e installare JRE 1.2 con Java Plug-in.

Una volta installato JRE con Java Plug-in, al successivo incontro di Netscape con una pagina Web che richiede Java Plug-in, questo plug-in verrà caricato dal disco rigido della macchina locale e l'applet o il componente JavaBeans verrà eseguito, come mostrato nella Figura 3.

Internet Explorer 3.02

Se utilizzi Internet Explorer, una pagina Web contenente il tag che fa riferimento a Java Plug-in attiverà il processo di download di questo plug-in. (Come con , esploreremo il tag più avanti in questo articolo). Questo tag contiene informazioni che consentono al browser di sapere quale tipo di plug-in è richiesto e dove ottenerlo. Come vedremo, il processo per ottenere il plug-in Java è un po 'più automatizzato in Explorer rispetto a Communicator. La Figura 4 mostra la pagina iniziale visualizzata quando Explorer rileva una pagina Web che fa riferimento a un plug-in non installato.

(Nota: il diamante colorato nell'angolo in alto a sinistra dello spazio del plug-in appare se il computer è connesso a Internet. Se il computer non è connesso a Internet, questo diamante viene sostituito con una X rossa e ovviamente Explorer non farà nulla per ottenere il plug-in).

Supponendo che il computer sia connesso a Internet, Explorer procede al download di un piccolo controllo ActiveX che è responsabile del download del controllo ActiveX del plug-in Java e di JRE. Explorer visualizza il certificato Verisign associato a questo primo controllo ActiveX, come mostrato nella Figura 5.

Supponendo che si scelga di installare ed eseguire Java Plug-in, facendo clic sul pulsante Sì nella finestra di dialogo precedente, Explorer richiede le informazioni sulla locale tramite la finestra di dialogo mostrata nella Figura 6.

Dopo aver ottenuto le informazioni sulla locale (e aver fatto clic sul pulsante Installa), Explorer visualizza una finestra di dialogo per il download, come mostrato nella Figura 7.

Una volta completato il download, Explorer tenterà di avviare JRE con il programma di installazione del plug-in Java. (La prima volta che ho scaricato Java Plug-in tramite Explorer, ho ricevuto un messaggio di errore CAB - Windows cabinet - file corrotto, che ha impedito al programma di installazione di avviare e completare l'installazione. Il programma di installazione è stato avviato e completato correttamente sul secondo tentativo.) Non appena il programma di installazione termina, Explorer carica ed esegue l'applet (o il componente JavaBeans), come mostrato nella Figura 8.

Impostazioni del registro di Windows

Il programma di installazione JRE con Java Plug-in registra varie impostazioni JRE e Java Plug-in nel registro di Windows: un database centralizzato di installazione e altri dati di configurazione e una parte fondamentale dei vari sistemi operativi Windows a 32 bit. La tabella seguente mostra diverse impostazioni del plug-in Java memorizzate in questo database. Ogni impostazione è costituita da una chiave che identifica un'impostazione e il valore di tale impostazione.

Chiave Valore
HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Plug-in/1.2/JavaHome c:\Program Files\JavaSoft\JRE\1.2
HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Plug-in/1.2/RuntimeLib c:\Program Files\JavaSoft\JRE\1.2\bin\classic\jvm.dll
HKEY_CURRENT_USER/Software/JavaSoft/Java Plug-in/Debug Mode 0
HKEY_CURRENT_USER/Software/JavaSoft/Java Plug-in/Debug Port 2502
HKEY_CURRENT_USER/Software/JavaSoft/Java Plug-in/Java Runtime Default
HKEY_CURRENT_USER/Software/JavaSoft/Java Plug-in/Java Runtime Version 1.2
HKEY_CURRENT_USER/Software/JavaSoft/Java Plug-in/JIT Enabled 1
HKEY_CURRENT_USER/Software/JavaSoft/Java Plug-in/JIT Path symcjit
Tabella 1. Impostazioni del plug-in Java memorizzate nel registro di Windows

Le prime due impostazioni del plug-in Java sono identificate dai tasti JavaHomee RuntimeLib. I valori associati a queste chiavi vengono utilizzati da Communicator ed Explorer per individuare rispettivamente la home directory di JRE e la macchina virtuale di runtime di JRE. Le informazioni sulla directory contenute in questi valori riflettono la directory di installazione predefinita selezionata durante l'installazione. Le chiavi rimanenti vengono utilizzate dal pannello di controllo del plug-in Java.

Comando e controllo

Il pannello di controllo del plug-in Java è un'applicazione Swing che consente di modificare il comportamento del plug-in Java. Il programma di installazione del plug-in JRE / Java aggiunge una voce al programma di avvio del programma Windows che, se selezionato, attiva il pannello di controllo del plug-in Java. Questa voce è costituita dalla seguente riga (assumendo la directory di installazione predefinita):

"c: \ Programmi \ JavaSoft \ JRE \ 1.2 \ bin \ javaw.exe" -classpath .. \ lib \ rt.jar; .. \ lib \ jaws.jar sun.plugin.panel.ControlPanel

Il pannello di controllo è costituito da un'interfaccia a schede con tre schede (Base, Avanzate e Proxy) e due pulsanti (Applica e Ripristina). La scheda Base controlla le operazioni di base del plug-in Java. Ad esempio, è possibile scegliere se visualizzare o meno la console Java del plug-in Java. La scheda Avanzate controlla quale JRE verrà utilizzato con il plug-in Java insieme al debug. La scheda Proxy controlla gli indirizzi ei numeri di porta utilizzati dal plug-in Java durante la comunicazione, tramite un computer intermedio, con un altro computer su Internet. Il pulsante Applica salva le modifiche apportate nel pannello di controllo, mentre il pulsante Ripristina ripristina i valori predefiniti.

La Figura 9 mostra il pannello di controllo con la scheda Base come scheda attiva.

La casella di controllo Abilita plug-in Java, se selezionata, abilita il plug-in Java per eseguire applet o componenti JavaBeans. L'impostazione predefinita è abilitata (la casella è selezionata).

La casella di spunta Mostra console Java consente di visualizzare la nuova console Java durante l'esecuzione di applet o componenti JavaBeans. Come vedremo più avanti, la console mostra i messaggi che sono stati stampati da System.oute gli System.erroggetti (utili per il debug). L'impostazione predefinita viene utilizzata per mostrare la nuova console Java (la casella è selezionata).

La casella di controllo Cache JAR in Memory, se selezionata, fa sì che l'applet o le classi di componenti caricate in precedenza vengano memorizzate nella cache e riutilizzate quando l'applet viene ricaricata, consentendo un uso più efficiente della memoria. Questa opzione dovrebbe essere lasciata deselezionata se si sta eseguendo il debug di un'applet o di un componente o se si desidera assicurarsi che vengano scaricati gli ultimi applet o le classi di componenti. L'impostazione predefinita è memorizzare nella cache i JAR (la casella è selezionata).

La casella di riepilogo a discesa Accesso alla rete consente di scegliere quale autorizzazione di accesso alla rete si desidera concedere alle applet e ai componenti in esecuzione. Questa opzione è abilitata se stai eseguendo Java Plug-in 1.1.x. Per Java Plug-in 1.2, è necessario utilizzare la nuova architettura di sicurezza per abilitare lo stesso comportamento. (Per ulteriori informazioni, consultare "Sicurezza e applet firmate / Architettura di sicurezza" nella documentazione di JDK 1.2.) Per impostazione predefinita, applet e componenti possono connettersi solo al loro server originale (Accesso di rete = Applet Host). Quando l'accesso alla rete è abilitato, è possibile utilizzare le seguenti quote, oltre a quelle predefinite:

  • Non consentire alcun accesso alla rete in modo che un'applet o un componente non possa effettuare chiamate di rete

  • Consentire l'accesso alla rete senza restrizioni (che è un rischio per la sicurezza e deve essere utilizzato con molta attenzione) in modo che un'applet o un componente possa connettersi a qualsiasi server host

Il campo di testo Parametri runtime Java sovrascrive i parametri di avvio predefiniti del plug-in Java specificando le opzioni personalizzate. Si utilizzerà la stessa sintassi per questo campo di testo che si utilizza quando si specificano i parametri per lo java.exestrumento della riga di comando.

La Figura 10 mostra il pannello di controllo con la scheda Avanzate come scheda attiva.

La casella di riepilogo a discesa Java Run Time Environment consente di eseguire il plug-in Java con JDK 1.2 o qualsiasi JRE installato sulla macchina. Java Plug-in 1.2 viene fornito con un JRE predefinito (attualmente JRE 1.2). Tuttavia, puoi sovrascrivere questo JRE predefinito e utilizzare una versione precedente o più recente. Il pannello di controllo rileva automaticamente tutte le versioni di JDK o JRE che sono state installate sulla macchina. Visualizza queste versioni all'interno della casella di riepilogo. Il primo elemento nell'elenco sarà sempre Java Plug-in Default, mentre l'ultimo elemento sarà sempre Altro. Se scegli Altro, devi specificare il percorso per JRE o JDK 1.2.

La casella di controllo Abilita compilatore JIT (solo piattaforme Win32) abilita il compilatore just-in-time (JIT). Se abiliti il ​​compilatore, devi anche specificare il percorso del compilatore JIT. Il compilatore JIT deve essere posizionato nella bindirectory per JRE o JDK selezionato per l'ambiente di runtime.