IBM 32-bit Runtime Environment per Linux su architettura Intel, Java 2 Technology Edition, Versione 1.4.1; Guida per l'utente


Informazioni sul copyright

Nota: Prima di usare questo prodotto e le relative informazioni, leggere le informazioni contenute nella sezione Informazioni particolari.

Questa edizione del manuale fa riferimento a IBM 32-bit Runtime Environment per Linux su architettura Intel, Java 2 Technology Edition, Versione 1.4.1, e a tutti i successivi rilasci, versioni e modifiche se non diversamente specificato nelle nuove edizioni.

(c) Copyright Sun Microsystems, Inc. 1997, 2002, 901 San Antonio Rd., Palo Alto, CA 94303 USA. Tutti i diritti riservati.

(c) Copyright International Business Machines Corporation, 1999, 2003. Tutti i diritti riservati.

Limitazioni per gli utenti degli Stati Uniti d'America. L'uso, la duplicazione o la divulgazione sono limitati dal GSA ADP Schedule Contract con l'IBM Corporation.


Prefazione

IBM(R) 32-bit Runtime Environment per Linux su architettura Intel, Java(TM) 2 Technology Edition, Versione 1.4.1 contiene Java Virtual Machine (JVM), le classi Sun Microsystems Java e i file di supporto. Runtime Environment non contiene tutte le classi disponibili nel pacchetto SDK.

La Guida per l'utente fornisce informazioni generiche su Runtime Environment e informazioni specifiche sulle differenze dell'implementazione IBM rispetto a quella Sun. Consultare questa Guida utente e l'altra documentazione dal sito Web di Sun: http://java.sun.com.

Per un elenco delle distribuzioni su cui è stato testato SDK per Linux, consultare http://www-106.ibm.com/developerworks/java/jdk/linux/tested.html

Si noti che Runtime Environment per Linux è una serie secondaria di SDK e abilita solo all'esecuzione di applicazioni Java. Se è installato SDK, è incluso Runtime Environment.

I termini "Runtime Environment" e "Java Virtual Machine" sono utilizzati scambievolmente in questa Guida per l'utente.

Le modifiche tecniche per questa Guida per l'utente 1.4.1 diverse da quelle ovvie o di minor importanza, come l'aggiornamento da "1.4.0" a "1.4.1", sono indicate in rosso durante la visualizzazione nella copia HTML o nella stampa a colori e da barre verticali nella parte sinistra delle modifiche.


Indice

Informazioni sul copyright

Prefazione

Panoramica

  • Compatibilità versione
  • File inclusi in Runtime Environment per Linux
  • Accordo di licenza
  • Compilatore JIT (just-in-time)
  • Native Method Interface e Java Native Interface
  • Configurazione di Runtime Environment per Linux

    Disinstallazione di Runtime Environment per Linux

  • Disinstallazione del pacchetto RMP (Red Hat Package Manager) installabile
  • Disinstallazione del pacchetto TAR (Tape Archive) compresso
  • Avvio di un'applicazione Java

  • Riepilogo dei comandi
  • Opzioni
  • Opzioni standard
  • Opzioni non standard
  • Globalizzazione dei comandi java
  • Gestione dei classpath
  • |Modalità di elaborazione di JVM dei segnali
  • |Segnali usati da JVM
  • |Collegamento di un driver di codice nativo alla libreria di segnale a catena
  • Gestione di bootclasspath
  • Specifica della politica di raccolta dei dati obsoleti
  • Tempo di pausa
  • Riduzione della pausa
  • Ambienti con heap molto pieni
  • Ulteriori informazioni sulla raccolta di dati obsoleti
  • Ricerca del numero di build IBM e del numero della versione

    Utilizzo del plug-in Java

  • Installazione e configurazione del plug-in Java
  • Installazione del plug-in Java per Mozilla
  • Browser supportati
  • Utilizzo dei parametri DBCS
  • Utilizzo di Web Start

  • Installazione di Web Start
  • Gestione degli stack mobili

    Passaggio del metodo di immissione nelle lingue DBCS

    Esempio di runtime

    Installazione dell'applicazione in un sistema utente

    Limiti noti

    Informazioni particolari

  • Marchi

  • Panoramica

    Runtime Environment per Linux contiene l'insieme secondario di classi richieste per creare un ambiente Java runtime e per eseguire programmi Java. Inoltre, contiene Java Virtual Machine, le classi Java principali e i file di supporto. Runtime Environment per Linux contiene solo un insieme secondario delle classi disponibili in SDK.


    Compatibilità versione

    |In generale, qualsiasi applet o applicazione eseguibile nelle |versioni 1.1.8, 1.2.2 o 1.3.1 di SDK |per Linux dovrebbe essere eseguita correttamente in questa versione. Le |applet che dipendono dalle API 1.4.1. Java Sun funzionano |solo sui browser che supportano le API Java 1.4.1.

    E' possibile che le classi compilate 1.4.1 non funzionino su rilasci di Runtime Environment precedenti a 1.4.0.


    File inclusi in Runtime Environment per Linux

    Runtime Environment per Linux include file .so di cui non è possibile eseguire il debug e file di classe necessari per il supporto di un programma al momento dell'esecuzione. Runtime Environment per Linux non include strumenti di sviluppo, come, ad esempio, appletviewer oppure javac, oppure classi specifiche di un sistema di sviluppo.

    Inoltre, i pacchetti API Java Communications vengono forniti per essere utilizzati con Runtime Environment per Linux.


    Accordo di licenza

    Il file LICENSE_xx.html contiene l'accordo di licenza per il software Runtime Environment per Linux. (xx è l'abbreviazione per la lingua.)

    Per visualizzare o stampare l'accordo di licenza, aprire il file in un browser Web.


    Compilatore JIT (just-in-time)

    Il compilatore JIT (Just-in-time) (libjitc.so) genera dinamicamente il codice macchina per le sequenze di codici di tipo bytecode di uso frequente in applicazioni Java e nelle applet mentre sono in esecuzione.

    Runtime Environment per Linux include il compilatore JIT (libjitc.so), che è abilitato come valore predefinito. Per individuare un problema relativo ad un'applicazione Java, ad un'applet o al compilatore stesso, è possibile disabilitare JIT.

    Per disabilitare JIT, immettere quanto segue da una richiesta comandi nella finestra in cui eseguire l'applicazione:

        export JAVA_COMPILER=NONE
    

    Per abilitare JIT, immettere quanto segue da una richiesta comandi :

        export JAVA_COMPILER=jitc
    

    Per verificare se JIT è abilitato, immettere quanto segue da una richiesta comandi :

        java -versione
    

    Se JIT è in uso, viene visualizzato un messaggio che comprende:

    (JIT abilitato: jitc)
    

    Se JIT non è in uso, viene visualizzato un messaggio che comprende:

    (JIT disabilitato)
    


    Native Method Interface e Java Native Interface

    IBM non supporta Native Method Interface in questo rilascio. Non utilizzare tale interfaccia nelle proprie applicazioni.

    Java Native Interface (JNI) è compreso nel Runtime Environment. Per informazioni sull'utilizzo di JNI, consultare il sito Web della Sun: http://java.sun.com.


    Configurazione di Runtime Environment per Linux

    Una volta installato Runtime Environment per Linux, modificare lo script di login di shell ed aggiungere la seguente directory all'istruzione PATH:

    /opt/IBMJava2-141/jre/bin

    Se è installato Runtime Environment per Linux in una directory diversa da /opt/IBMJava2-141/, sostituire /opt/IBMJava2-141/ con la directory in cui è installato Runtime Environment per Linux.


    Disinstallazione di Runtime Environment per Linux

    Il processo da utilizzare per rimuovere Runtime Environment per Linux è diverso se è stato installato il pacchetto RPM (Red Hat Package Manager) installabile oppure il pacchetto TAR (Tape Archive) compresso. Consultare Disinstallazione del pacchetto RMP (Red Hat Package Manager) installabile o Disinstallazione del pacchetto TAR (Tape Archive) compresso per le istruzioni.


    Disinstallazione del pacchetto RMP (Red Hat Package Manager) installabile

    Per disinstallare Runtime Environment per Linux con installato il pacchetto RMP installabile:

    1. In uno script shell, immettere:

          rpm -e IBMJava2-JRE-1.4.1     
      

      In alternativa, è possibile utilizzare uno strumento grafico, come ad esempio kpackage oppure yast2

    2. Rimuovere dall'istruzione PATH la directory in cui è stato installato Runtime Environment.

    3. Se è stato installato il plug-in Java, eliminare i relativi file dalla directory di Netscape.



    Disinstallazione del pacchetto TAR (Tape Archive) compresso

    Per disinstallare Runtime Environment per Linux con il pacchetto TAR compresso installato:

    1. Rimuovere i file di Runtime Environment dalla directory in cui è stato installato Runtime Environment.

    2. Rimuovere dall'istruzione PATH la directory in cui è stato installato Runtime Environment.

    3. Se è stato installato il plug-in Java, eliminare i relativi file dalla directory di Netscape.


    Avvio di un'applicazione Java

    Lo strumento java avvia un'applicazione Java.

    JVM ricerca la classe di startup e le altre classi utilizzate, in tre serie di ubicazioni: il percorso classe di bootstrap, le estensioni installate e il percorso di classe utente. Gli argomenti dopo il nome classe o il nome file JAR vengono passati alla funzione principale.

    Il comando javaw è identico a java, tranne javaw che non ha alcuna finestra di console associata. Usare javaw quando non si desidera che venga visualizzata una finestra di richiesta comandi. Il programma di avvio javaw visualizza una casella di dialogo con le informazioni sugli errori nel caso in cui l'avvio abbia esito negativo.


    Riepilogo dei comandi

    I comandi java e javaw hanno la seguente sintassi:

    java [ opzioni ] classe [ argomenti ... ]
    java [ opzioni ] -jar file.jar [ argomenti ... ]
    javaw [ opzioni ] classe [ argomenti ... ]
    javaw [ opzioni ] -jar file.jar [ argomenti ... ]
     
    

    Le voci tra parentesi sono facoltative.

    opzioni
    Opzioni della riga comandi.
    classe
    Il nome della classe da richiamare.
    file.jar
    Il nome del file jar da richiamare. Utilizzato solo con -jar.
    argomento
    L'argomento passato alla funzione principale.

    Se si specifica l'opzione -jar, il file JAR denominato contiene i file di risorsa e classe per l'applicazione, insieme alla classe di startup specificata nell'intestazione manifest Main-Class.


    Opzioni

    Il programma di avvio ha una serie di opzioni standard supportate nell'ambiente di runtime corrente e che saranno supportate dai release successivi. Vi sono inoltre, una serie di opzioni non standard.

    Opzioni standard

    -D<nome_proprietà>=<valore>

    Imposta una proprietà di sistema.

    -assert

    Visualizza l'aiuto sulle opzioni correlate all'asserzione.

    -cp o -classpath <directory o file jar o zip separati da :>

    Imposta il percorso di ricerca per le risorse e classe dell'applicazione. Se non vengono utilizzate -classpath e -cp e non si imposta CLASSPATH il classpath utente è predefinito sulla directory corrente (.). Consultare anche Gestione dei classpath.

    -help o -?

    Visualizza le informazioni relative all'utilizzo.

    -showversion

    Visualizza la versione del prodotto e continua.

    -verbose[:class | gc | jni]

    Abilita l'output dettagliato.

    -version

    Visualizza la versione del prodotto.

    -X

    Visualizza le istruzioni relative alle opzioni non standard.

    Opzioni non standard

    Le opzioni -X elencate di seguito sono una serie secondaria delle opzioni disponibili. Sono non standard e sono soggette a modifica senza preavviso.

    -Xargencoding

    Consente alle opzioni nel comando java di utilizzare le sequenze escape Unicode per rappresentare i caratteri che non sono in una serie di caratteri della locale. Le sequenze di escape Unicode hanno il formato \u#### in cui # è una cifra esadecimale.

    -Xbootclasspath:<directory e file jar o zip separati da ;>

    Imposta il percorso di ricerca per le risorse e le classi bootstrap. Vi sono altri modi per impostare bootclasspath. Consultare Gestione di bootclasspath. |Non distribuire applicazioni che usano questa opzione per ignorare |una classe in core.jar, graphics.jar, server.jar, |security.jar, xml.jar, tools.jar, oppure |charsets.jar, perché tale distribuzione contravverrebbe alla licenza |sul codice binario di Java 2 Runtime Environment.

    -Xbootclasspath/a:<directory e file jar o zip separati da ;>

    Accoda alla fine del percorso della classe bootstrap.

    |-Xbootclasspath/p:<directory e file jar o |zip separati da ;> |

    |Inserisce all'inizio del percorso di classe bootstrap. Non distribuire applicazioni che usano questa opzione per ignorare |una classe in core.jar, graphics.jar, server.jar, |security.jar, xml.jar, tools.jar, oppure |charsets.jar, perché tale distribuzione contravverrebbe alla licenza |sul codice binario di Java 2 Runtime Environment. |

    -Xcheck:jni

    Esegue un'ulteriore verifica per le funzioni JNI.

    -Xcheck:nabounds

    Esegue un'ulteriore verifica per le operazioni di matrice JNI.

    -Xdebug

    Avvia JVM con il debugger abilitato.

    |-Xdisableexplicitgc |

    |Cambia le chiamate a System.gc() in no-ops. |

    -Xdisablejavadump

    Disabilita la funzione java dump per la fine processo anomala. Quando java dump è disabilitata, viene eseguito lo scaricamento della fine processo di sistema. Java dump è utile quando si verifica un problema con il codice java. Se il problema è all'interno dei componenti di sistema, può risultare più utile richiamare il normale scaricamento di sistema.

    |-Xgcpolicy:{optthruput | optavgpause} |

    |Specifica l'impostazione della raccolta di dati obsoleti. |L'impostazione predefinita è optthruput. Per ulteriori |dettagli, consultare Specifica della politica di raccolta |dei dati obsoleti. |

    -Xms<dimensione>

    Imposta la dimensione iniziale della memoria heap di Java.

    -Xmx<dimensione>

    Imposta la dimensione massima della memoria heap di Java.

    -Xnoclassgc

    Disabilita la raccolta disordinata di classi.

    -Xoss<dimensione>

    Imposta la dimensione di stack Java minima per i thread.

    -Xquickstart

    |Migliora il tempo di avviamento delle applicazioni. Se non si |specifica questa opzione, la compilazione iniziale dei metodi viene effettuata |con un'alta ottimizzazione (cioè, JIT non ricompila metodi "hot" poiché i |metodi sono inizialmente compilati con un'alta |ottimizzazione).

    -Xrs

    Riduce l'utilizzo dei segnali del sistema operativo.

    -Xrunnome_libreria[:opzioni]

    Carica le librerie dell'helper. Per caricare più librerie, specificarle più volte nella riga comandi. Alcuni esempi di libreria sono:
    • -Xrunhprof[:help] | [:<opzione>=<valore>, ...]
      Esegue heap, CPU, profili di controllo.
    • -Xrunjdwp[:help] | [:<opzione>=<valore>, ...]
      Carica le librerie di debug per il supporto del debug remoto delle applicazioni.

    -Xss<dimensione>

    Imposta la dimensione di stack nativo massima per i thread. Per ulteriori informazioni, consultare Gestione di stack mobili.

    |-Xverbosegclog:<percorso del |file><filename>[X, Y] |

    |Comporta che l'output verboseGC venga scritto nel file |specificato. Se il file esiste, viene sovrascritto. Altrimenti, |se non si riesce ad aprire un file esistente, o se non è possibile creare un |nuovo file, l'output viene direzionato su stderr. Se si |specificano gli argomenti X e Y (entrambi interi) l'output verboseGC |viene indirizzato sul numero Y di file, ciascuno contenente il numero X di |cicli gc valido per l'output verboseGC. Questi file hanno il |formato filename1, filename2 e così via.
    |Nota:
    La variabile di ambiente IBM_JVM_ST_VERBOSEGC_LOG è stata |eliminata da questo release. |
    |

    -Xverify

    Abilita verifiche precise, anticipando le impostazioni predefinite che saranno utilizzate.

    Globalizzazione dei comandi java

    Il comando java e gli altri comandi di avvio java (come ad esempio javaw) consentono di specificare un nome classe come un qualsiasi carattere Unicode che si trovi nella serie di caratteri della locale corrente.

    E' possibile specificare un qualsiasi carattere Unicode nel nome classe e gli argomenti utilizzando le sequenze di escape java. Per eseguire tale operazione, occorre specificare -Xargencoding. Per specificare un carattere Unicode, utilizzare sequenze di escape nel formato \u####, dove # è una cifra esadecimale (da 0 a 9, dalla A alla F).

    Per specificare che il nome classe e gli argomenti comando sono nella codifica UTF8 o ISO8859_1, utilizzare -Xargencoding:utf8 e -Xargencoding:latin.

    In Runtime Environment, se si sta utilizzando una locale non Inglese, i comandi java e javaw emettono messaggi tradotti. Tali messaggi sono diversi da quelli nella versione 1.3.1 e differiscono anche in base alla locale in cui Java è in esecuzione. Le descrizioni dettagliate dell'errore ed altre informazioni di debug restituite da java sono in lingua inglese. Le informazioni di debug restituite durante l'inizializzazione sono visualizzate tra parentesi.


    Gestione dei classpath

    In Runtime Environment, è possibile specificare un nome classe come nome file completo includendo un percorso completo e l'estensione .class. Nelle versioni precedenti di SDK, era possibile specificare solo la classe relativa in CLASSPATH e non era possibile utilizzare l'estensione .class. L'utilizzo del nome file completo consente di avviare un'applicazione java dal desktop o dal programma di avvio file. Se si specifica un file .class con percorso e estensione, il percorso specificato viene inserito in CLASSPATH. Ad esempio, il comando java c:\myapp\thisapp.class corrisponde a java -classpath c:\myapp thisapp.


    |Modalità di elaborazione di JVM dei segnali

    |Quando viene generato un segnale che possa essere di interesse per JVM, |viene richiamato un programma di gestione segnali. Questo, determina se |è stato invocato per un thread Java oppure per un non-Java. Se il |segnale è per un thread Java, JVM prende il controllo della gestione del |segnale. Se il segnale è per un thread non-Java, e l'applicazione |che installava JVM aveva precedentemente installato il suo proprio gestore |segnale, il controllo viene dato a quel gestore. Altrimenti, il segnale |viene ignorato (indipendentemente dal fatto che non sia l'azione |predefinita del segnale).

    |Per le eccezioni ed i segnali di errore, JVM: |

    |Per segnali di interruzione, JVM immette inoltre una sequenza di chiusura |controllata, ma questa volta viene trattata come una normale chiusura |che: |

    |La chiusura è identica a quella iniziata da una chiamata al metodo Java |System.exit().

    |Altri segnali usati da JVM servono per controlli interni e non causano la |chiusura. L'unico segnale di controllo di interesse è SIGQUIT, che |genera un core dump Java.

    |Segnali usati da JVM

    |Tabella 1 di seguito vengono illustrati i segnali usati da JVM. |I segnali sono stati raggruppati in una tabella per tipo o uso, nel seguente |modo: |


    |

    |Tabella 1. Segnali usati da JVM

    Nome segnale Tipo segnale Descrizione Disabilitato da -Xrs
    SIGSEGV Eccezione Accesso alla memoria non corretto (scrittura su memoria non accessibile) No
    SIGILL Eccezione Istruzione non valida (tentativo di richiamare istruzione macchina sconosciuta) No
    SIGFPE Eccezione Eccezione virgola mobile (dividere per zero) No
    SIGBUS Eccezione Errore Bus (tentativo di indirizzare ubicazione memoria non esistente)
    SIGSYS Eccezione Emessa chiamata di sistema difettosa
    SIGXCPU Eccezione Superato tempo limite CPU (in esecuzione da troppo tempo)
    SIGXFSZ Eccezione Superato limite dimensione file
    SIGABRT Errore Fine anomala. JVM emette questo segnale quando rileva un problema JVM.
    SIGINT Interrotto Attenzione interattiva (CTRL-C). JVM esce normalmente.
    SIGTERM Interruzione Richiesta termine. JVM uscirà normalmente.
    SIGHUP Interruzione Disconnessione. JVM esce normalmente.
    SIGUSR1 Controllo Definito dall'utente. Usato da alcuni JVM per controllo interno. No
    SIGUSR2 Controllo Definito dall'utente. Usato da alcuni JVM per controllo interno. No
    SIGQUIT Controllo Segnale di uscita per un terminale. Usato da JVM per effettuare il dump del core Java.
    SIGTRAP Controllo Interno usato da dbx o ptrace. Usato da alcuni JVM per controllo interno.
    SIGPIPE Controllo Scrittura su pipe non letta. Ignorato da JVM. No

    |Usare l'opzione -Xrs (riduce uso segnale) per evitare che |JVM usi la maggior parte dei segnali. Per ulteriori informazioni, |consultare la pagina di avvio dell'applicazione Java della Sun |all'indirizzo http://java.sun.com/j2se/1.4.1/docs/tooldocs/windows/java.html.

    |I segnali 1 (SIGHUP), 2 (SIGINT), 4 |(SIGILL), 6 (SIGABRT), 7 (SIGEMT), 8 |(SIGFPE), 10 (SIGBUS), 11 (SIGSEGV), 12 |(SIGSYS), 15 (SIGTERM), and 24 (SIGXCPU) causano |la chiusura di JVM, pertanto l'applicazione del gestore segnali non |dovrebbe provare a recuperarli, a meno che non vengano più richiesti da |JVM.

    |Collegamento di un driver di codice nativo alla libreria di segnale a catena

    |IBM 32-bit Runtime Environment per Linux su architettura Intel, Java 2 |Technology Edition, Versione 1.4.1 JVM contiene una funzione di |segnale a catena. Questa consente a JVM di operare in modo più |efficiente con il code nativo che installa i propri gestori di segnale.

    |Il segnale a catena consente ad un'applicazione di collegarsi e di |caricare la libreria libjsig.so prima di |libc/libthread/libpthread. La libreria jsig.dll assicura che |vengano intercettate le chiamate quali signal(), |sigset() e sigaction() così che i loro gestori non |sostituiscano i gestori di segnale JVM. Al contrario, tali chiamate |salvano i nuovi gestori di segnale o li concatenano ai gestori installati |dalla JVM. Successivamente, quando uno di tali segnali viene attivato e |viene rilevato come non destinato alla JVM, vengono richiamati i gestori |preinstallati.

    |Per utilizzare libjsig.so: |

    |Se si installano gestori di segnale che utilizzano sigaction() , |alcuni indicatori sa_flags non vengono rispettati quando la JVM |utilizza il segnale. Tali indicatori sono: |

    |La libreria libjsig.so nasconde i gestori di segnale della JVM |dall'applicazione. Per questo motivo, chiamate come |signal(), sigset() e sigaction() eseguite |dopo l'avvio della JVM non restituiscono un riferimento al gestore di |segnale della JVM ma restituiscono i gestori installati prima dell'avvio |della JVM.


    Gestione di bootclasspath

    E' possibile impostare le proprietà di sistema ibm.jvm.bootclasspath usando l'opzione -D descritta in Avvio di un'applicazione Java. Il valore di tale proprietà viene utilizzato come percorso di ricerca aggiuntivo, inserito tra un qualsiasi valore definito con -Xbootclasspath/p: e il percorso di classe (classpath) di bootstrap. Il percorso di classe bootstrap è quello predefinito oppure quello definito utilizzando l'opzione -Xbootclasspath:.


    Specifica della politica di raccolta dei dati obsoleti

    L'opzione di runtime JVM -Xgcpolicy specifica la politica di raccolta dati obsoleti.

    -Xgcpolicy accetta due valori, optthruput (il valore predefinito) e optavgpause. Questa opzione controlla il comportamento del programma di raccolta dei dati obsoleti, bilanciando la velocità effettiva dell'applicazione e del sistema in generale e le pause determinate dalla raccolta dei dati obsoleti.

    Il formato dell'opzione ed i suoi valori sono:

    -Xgcpolicy:optthruput

    e

    -Xgcpolicy:optavgpause

    Tempo di pausa

    Quando il tentativo di un'applicazione di creare un oggetto non può essere immediatamente soddisfatto a causa dello spazio disponibile nell'heap, il programma di raccolta dei dati obsoleti è responsabile dell'identificazione degli oggetti cui non si fa riferimento (obsoleti), della loro cancellazione e della reimpostazione dell'heap su uno stato in cui le immediate e successive richieste di allocazione possono essere soddisfatte rapidamente. Questi cicli di raccolta dei dati obsoleti causano delle pause occasionali ed impreviste nell'esecuzione del codice dell'applicazione. Quando la dimensione e la complessità delle applicazioni crescono, e gli heap diventano di conseguenza più grandi, questa pausa per la raccolta dei dati obsoleti tende a crescere. Il valore di raccolta dati obsoleti predefinito, optthruput, consente un elevata velocità di esecuzione delle applicazioni, tuttavia possono verificarsi delle pause occasionali, che possono variare da pochi millisecondi a molti secondi, in base alla dimensione della memoria riservata e alla quantità di dati obsoleti.

    Riduzione della pausa

    L'opzione optavgpause riduce notevolmente le pause nelle raccolte dei dati obsoleti e limita l'effetto dell'aumento della dimensione della memoria riservata nella lunghezza della pausa di raccolta dei dati obsoleti. Questa opzione è particolarmente importante nelle configurazioni con degli heap di notevoli dimensioni. Le pause vengono ridotte eseguendo alcune attività di raccolta dei dati obsoleti simultaneamente all'esecuzione del normale programma. Con la riduzione della pausa, potrebbe ridursi la velocità effettiva dell'applicazione, che varia secondo le applicazioni.

    Ambienti con heap molto pieni

    Quando un heap Java è quasi pieno ed i dati obsoleti da eliminare sono pochi, è possibile che le richieste per nuovi oggetti non possano essere soddisfatte rapidamente poiché non c'è spazio immediatamente disponibile. Se l'heap viene utilizzato quando è quasi pieno, è possibile che le prestazioni delle applicazioni subiscano una riduzione, indipendentemente da quale delle opzioni sopra indicate viene utilizzata: e, se si continua ad inoltrare richieste per ulteriore spazio dell'heap, l'applicazione riceve un'eccezione OutofMemory, che determina la chiusura del JVM se l'eccezione non viene rilevata e risolta. In queste situazioni, si consiglia di aumentare la dimensione dell'heap utilizzando l'opzione e -Xmx oppure di ridurre il numero di oggetti di applicazione in uso.

    Ulteriori informazioni sulla raccolta di dati obsoleti

    Per ulteriori informazioni sulla raccolta dei dati obsoleti, consultare:

    http://www.ibm.com/developerworks/ibm/library/i-garbage1/

    http://www.ibm.com/developerworks/ibm/library/i-garbage2/

    http://www.ibm.com/developerworks/ibm/library/i-garbage3/

    |Per informazioni sulla gestione delle perdite di memoria nelle |applicazioni Java, consultare: http://www.ibm.com/developerworks/library/j-leaks/index.html.


    Ricerca del numero di build IBM e del numero della versione

    Per ottenere il numero di build e di versione, digitare quanto riportato di seguito in una richiesta comandi :

    java -version


    Utilizzo del plug-in Java

    La documentazione relativa al plug-in Java è disponibile sul sito Sun all'indirizzo: http://java.sun.com/j2se/1.4.1/docs/guide/plugin/developer_guide/.

    In questo release di SDK, il plug-in Java non supporta la stampa.


    Installazione e configurazione del plug-in Java

    Il plug-in Java è un plug-in del browser Web. Se viene utilizzato il plug-in Java, è possibile ignorare il valore predefinito del browser di Java Virtual Machine ed utilizzare JRE (Java Runtime Environment) per l'esecuzione di applet o di bean nel browser.

    Per installare e configurare il plug-in Java, procedere come segue:

    Installazione del plug-in Java per Mozilla

    |Per installare e configurare il plug-in Java per Netscape 6 o |Mozilla, creare un collegamento simbolico dal file della libreria |/opt/IBMJava2-141/jre/bin/libjavaplugin_oji.so alla directory dei |plug-in del proprio browser (/percorso di installazione del |browser/plugins).

    Per rendere il plug-in Java disponibile a tutti gli utenti:

    1. Collegarsi come ID utente root
    2. Inserire un collegamento simbolico al file della libreria /opt/IBMJava2-141//jre/bin/libjavaplugin_oji.so nella directory dei plug-in Mozilla (generalmente /usr/local/mozilla/plugins/, ma potrebbe essere diversa in alcune distribuzione).
      ln -s /opt/IBMJava2-141/jre/bin/libjavaplugin_oji.so \
         /usr/local/mozilla/plugins/
      
    Nota:
    libjavaplugin_oji.so deve essere collegato simbolicamente e non copiato; in caso contrario, non è possibile trovare l'ubicazione della JVM.

    Browser supportati


    Tabella 2. Browser supportati da Java Plug-in

    Distribuzione Versioni predefinite di Netscape Versioni supportate di Netscape Versioni predefinite di Mozilla Versioni supportate di Mozilla
    Red Hat 7.3 4.79 4.79 0.9.9 0.9.9
    Red Hat Advanced Server 4.78 4.78 0.9.9 0.9.9
    SuSE 8.0

    0.9.8 0.9.8
    SuSE SLES 7 4.77 4.77

    TurboLinux 7 Server

    0.94 0.94

    Utilizzo dei parametri DBCS

    Java Plug-in supporta i caratteri double-byte (ad esempio il cinese tradizionale BIG-5, coreano, giapponese) come parametri per le tag <APPLET>, <OBJECT> e <EMBED>. E' necessario selezionare la codifica caratteri corretta per il documento HTML in modo che il plug-in Java possa analizzare il parametro. Specificare la codifica dei caratteri per il documento HTML utilizzando la tag <META> nella sezione <HEAD>, come riportato di seguito:

    <meta http-equiv="Content-Type" content="text/html; charset=big5">
    

    Questo esempio indica al browser di utilizzare la codifica caratteri Cinese BIG-5 per l'analisi del file HTML. Tutti i parametri vengono passati al plug-in Java in modo corretto. Tuttavia, alcune versioni meno recenti dei browser potrebbero non interpretare la tag correttamente. In questo caso, è possibile forzare il browser in modo da ignorare questa tag, ma potrebbe essere necessario modificare manualmente la codifica.

    E' possibile specificare quale codifica utilizzare per l'analisi del file HTML:


    Utilizzo di Web Start

    Java Web Start consente la distribuzione di applicazioni basate sulla tecnologia Java. Collega il computer e Internet e consente all'utente di avviare e gestire applicazioni direttamente dal Web. Java Web Start consente l'attivazione delle applicazioni con un solo clic ed assicura che l'utente stia eseguendo sempre la versione più aggiornata del programma, eliminando le procedure di installazione o di aggiornamento. Spesso, la distribuzione del software nel Web richiede che l'utente ricerchi il programma di installazione sul Web, lo scarichi e lo esegua. Dopo avere eseguito il programma di installazione, vengono richieste le directory e le opzioni di installazione, come ad esempio, completa, tipica e minima. Tale attività può richiedere tempo ed essere complicata ed inoltre, va ripetuta per ogni nuova versione del software.

    Al contrario, le applicazioni distribuite sul Web, come il client email e il calendario HTML sono pronte per l'installazione e l'utilizzo. Il browser Web ha reso automatico tale processo. Non vi sono complicati passi di scaricamento, installazione e configurazione e si eseguirà sempre la versione più aggiornata. Java Web Start ha gli stessi vantaggi delle applicazioni complete.

    Per informazioni relative ai browser che supportano Web Start, consultare la sezione Browser supportati.

    Per ulteriori informazioni su Web Start, consultare: http://java.sun.com/products/javawebstart e se si desiderano ulteriori pubblicazioni, consultare: http://java.sun.com/j2se/1.4.1/docs/guide/jws/index.html.


    Installazione di Web Start

    Lo script di installazione di Web Start viene installato con JRE per Java 1.4.1.

    Lo script è denominato jre/bin/webstart_install_sdk.sh. Per utilizzare Web Start, eseguire lo script. Impostare la directory di lavoro corrente sulla posizione in cui si desidera installare Web Start. La procedura di installazione crea una sottodirectory denominata javaws nella directory di lavoro corrente.

    La procedura di installazione aggiorna anche i tipi mime utilizzati da Netscape e da altri browser.

    E' possibile avviare Web Start in due modi:

    1. Selezionare un collegamento in una pagina Web che si riferisce ad un file .jnlp.
    2. Avviare javaws dalla directory javaws creata in precedenza e visualizzare la finestra Web Start da cui è possibile selezionare le applicazioni.
    3. Uno script shell, tipo javaws <URL>, dove <URL> è l'ubicazione del file .jnlp.

    Una qualsiasi di queste azioni fa in modo che Web Start avvii l'applicazione selezionata. Se è la prima volta che si utilizza l'applicazione, questa viene scaricata. Quando l'applicazione viene richiamata successivamente, viene eseguita una ricerca sul sito Web per verificare la disponibilità di aggiornamenti. Web Start scarica tali aggiornamenti prima dell'avvio dell'applicazione.

    Se si verifica un errore in un file jnlp (ad esempio, un nome di tag non valido), Web Start viene interrotto senza visualizzare un messaggio di errore.


    Gestione degli stack mobili

    Alcune distribuzioni Linux, come, ad esempio, Red Hat, hanno abilitato una funzione GLIBC detta 'a stack mobili'. A causa di limitazioni del kernel Linux, JVM non viene eseguito su hardware SMP con gli stack mobili abilitati se il livello del kernel è inferiore a 2.4.10. In questo ambiente, gli stack mobili devono essere disabilitati prima di avviare JVM o qualsiasi applicazione che determina l'avvio di JVM. Su Red Hat, è possibile disabilitare gli stack mobili esportando una variabile di ambiente:

    export LD_ASSUME_KERNEL=2.2.5
    

    Su un sistema Linux a stack non mobili, indipendentemente da quanto impostato per -Xss, viene fornita una dimensione di stack nativo minima di 256 KB. Su un sistema Linux a stack mobili, i valori specificati per -Xss vengono applicati. Pertanto, se si sta eseguendo una migrazione da un sistema Linux con stack non mobili, è necessario verificare che tutti i valori -Xss specifichino delle dimensioni sufficienti e non dipendano dal valore minimo di 256 KB.


    Passaggio del metodo di immissione nelle lingue DBCS

    Nei sistemi DBCS (double-byte character set), se si desidera passare il metodo di immissione, occorre utilizzare la classe java.util.prefs.Preferences invece delle variabili di ambiente IBMJAVA_INPUTMETHOD_SWITCHKEY e IBMJAVA_INPUTMETHOD_SWITCHKEY_MODIFIERS. Consultare Specifiche Framework del metodo di input Sun per i dettagli.


    Esempio di runtime

    Il sito Web di Sun, http://java.sun.com, contiene un esempio denominato "Hello World" che è possibile scaricare. L'esempio mostra come creare una semplice applicazione Java eseguita con Runtime Environment.


    Installazione dell'applicazione in un sistema utente

    Dopo aver sviluppato il prodotto, se si desidera disporne, sarà necessario installarlo su un sistema utente, configurare il sistema dell'utente affinché supporti il software e configurare l'ambiente di runtime.

    Se si utilizza Runtime Environment per Linux, accertarsi che l'installazione non ricopra un'installazione esistente, a meno che non si tratti di una versione Runtime Environment per Linux precedente.

    Per distribuire Runtime Environment per Linux, è possibile installarlo sul proprio sistema e copiare i file di Runtime Environment richiesti nel set di installazione. Se viene scelto questo approccio, è necessario inserire tutti i file richiesti con Runtime Environment per Linux. Il software Runtime Environment per Linux può essere ridistribuito solo se vengono inclusi tutti i file. Quando viene fornita l'applicazione, essa dispone di una propria copia di Runtime Environment per Linux.

    Per informazioni sui file che devono essere redistribuiti, consultare l'Accordo di licenza.


    Limiti noti

    Le sezioni seguenti illustrano i limiti noti di SDK per Linux.

    I seguenti limiti si applicano solo agli utenti della versione Cinese tradizionale.


    Informazioni particolari

    Queste informazioni sono state sviluppate per prodotti e servizi offerti negli Stati Uniti d'America. E' possibile che la IBM non offra i prodotti, i servizi o le funzioni trattati in questo documento in altri paesi. Consultare il rappresentante commerciale IBM per informazioni relative ai prodotti e servizi disponibili nel proprio paese. Ogni riferimento a prodotti programmi o servizi IBM non significa che possano essere usati soltanto tali programmi, prodotti o servizi. In sostituzione a quelli forniti dall'IBM, possono essere usati prodotti, programmi o servizi funzionalmente equivalenti che non comportino violazione dei diritti di proprietà intellettuale. Tuttavia, è responsabilità dell'utente valutare e verificare la possibilità di usare programmi, prodotti o servizi non IBM.

    L'IBM può avere brevetti o domande di brevetto in corso relativi a quanto trattato nella presente pubblicazione. La fornitura di questa pubblicazione non implica la concessione di alcuna licenza su di essi. Chi desiderasse ricevere informazioni relative a licenze può rivolgersi per iscritto a:

    Chi desiderasse ricevere delucidazioni sulle licenze relative alle informazioni DBCS, può contattare IBM Intellectual Property Department nel proprio paese o rivolgersi per iscritto a:

    Il seguente paragrafo non è valido per il Regno Unito o per tutti i paesi le cui leggi nazionali siano in contrasto con le disposizioni in esso contenute:

    L'IBM FORNISCE QUESTA PUBBLICAZIONE SENZA ALCUNA GARANZIA, ESPLICITA O IMPLICITA, IVI INCLUSE EVENTUALI GARANZIE DI COMMERCIABILITA' ED IDONEITA' AD UNO SCOPO PARTICOLARE. Alcune nazioni non escludono le garanzie implicite; di conseguenza la suddetta esclusione potrebbe, in questo caso, non essere applicabile.

    Queste informazioni potrebbero contenere imprecisioni tecniche o errori tipografici. Le correzioni relative saranno incluse nelle nuove edizioni. L'IBM si riserva il diritto di apportare miglioramenti o modifiche al prodotto o al programma descritto in qualsiasi momento e senza preavviso.

    Tutti i riferimenti a pubblicazioni e a siti Web non dell'IBM contenuti in questo documento sono forniti solo per consultazione. I materiali contenuti in tali pubblicazioni e siti Web non fanno parte di questo prodotto e l'utilizzo di questi è a discrezione dell'utente.

    L'IBM può utilizzare o distribuire qualsiasi informazione voi forniate nel modo più appropriato senza incorrere in alcuna obbligazione nei vostri riguardi.

    Coloro che detengono la licenza su questo programma e desiderano avere informazioni su di esso allo scopo di consentire: (i) uno scambio di informazioni tra programmi indipendenti ed altri (compreso questo) e (ii) l'uso reciproco di tali informazioni, dovrebbero rivolgersi a:

    Queste informazioni possono essere rese disponibili secondo condizioni contrattuali appropriate, compreso, in alcuni casi, l'addebito di un canone.

    Il programma su licenza descritto in queste informazioni e tutto il materiale su licenza ad esso relativo sono forniti dall'IBM nel rispetto delle condizioni previste dalla licenza d'uso.

    I dati relativi alle prestazioni contenuti nel presente documento sono stati ottenuti in un ambiente controllato. Pertanto, i risultati ottenibili in altri ambienti operativi potrebbero variare significativamente. Alcune rilevazioni sono state effettuate su sistemi in fase di sviluppo e non si garantisce in alcun modo che tali rilevazioni siano uguali su tutti i sistemi. Inoltre, alcune rilevazioni non state effettuate tramite estrapolazione. Pertanto, i risultati effettivi possono essere differenti. Gli utenti devono verificare l'applicabilità dei dati negli specifici ambienti operativi.

    Le informazioni relative a prodotti non IBM sono state ottenute dai fornitori di tali prodotti. L'IBM non ha verificato tali prodotti e, pertanto, non può garantirne l'accuratezza delle prestazioni. Eventuali commenti relativi alle prestazioni dei prodotti non IBM devono essere indirizzati ai fornitori di tali prodotti.


    Marchi

    IBM è un marchio della International Business Machines Corporation.

    Java e tutti i marchi ed i logo basati su Java sono marchi della Sun Microsystems, Inc.

    I nomi di altre società, prodotti e servizi potrebbero essere marchi di altre società.

    Questo prodotto include il software sviluppato da Apache Software Foundation http://www.apache.org/.