IBM 32-Bit Runtime Environment para Linux na Arquitetura Intel, Java 2 Technology Edition, Versão 1.4.1: Guia do Usuário


Informações de Copyright

Nota: Antes de utilizar estas informações e o produto que elas suportam, certifique-se de ler as informações gerais em Avisos.

Esta edição do Guia do Usuário se aplica ao IBM 32-Bit Runtime Environment para Linux na Arquitetura Intel, Java 2 Technology Edition, Versão 1.4.1 e a todos os releases e modificações subseqüentes, até que seja indicado de outra forma em novas edições.

(c) Copyright Sun Microsystems, Inc. 1997, 2002, 901 San Antonio Rd., Palo Alto, CA 94303 USA. Todos os direitos reservados.

(c) Copyright International Business Machines Corporation, 1999, 2003. Todos os direitos reservados.

Direitos Restritos para Usuários do Governo dos Estados Unidos - Uso, duplicação e divulgação restritos pelo documento GSA ADP Schedule Contract com a IBM Corporation.


Prefácio

O IBM(R) 32-Bit Runtime Environment para Linux na Arquitetura Intel, Java(TM) 2 Technology Edition, Versão 1.4.1 contém a JVM (Java Virtual Machine), as principais classes Java da Sun Microsystems e arquivos de suporte. O Runtime Environment não contém todas as classes encontradas no pacote SDK.

O Guia do Usuário oferece informações gerais sobre o Runtime Environment e informações específicas sobre as diferenças na implementação da IBM do Runtime Environment em comparação com a implementação da Sun. Leia este Guia do Usuário juntamente com a documentação mais extensa encontrada no Web site da Sun: http://java.sun.com.

Para obter a lista de distribuições com a qual o SDK para Linux foi testado, visite o endereço: http://www-106.ibm.com/developerworks/java/jdk/linux/tested.html

Observe que o Runtime Environment para Linux é um subconjunto do SDK e permite que você execute apenas aplicativos Java. Se você instalou o SDK, o Runtime Environment está incluído.

Os termos "Runtime Environment" e "Java Virtual Machine" são utilizados alternadamente neste Guia do Usuário.

As alterações técnicas deste Guia do Usuário 1.4.1, com exceção das alterações menores ou evidentes, como a atualização de "1.4.0" para "1.4.1", estão indicadas em vermelho ao visualizar o HTML ou em uma cópia impressa colorida e por barras verticais à esquerda das alterações.


Índice

Informações de Copyright

Prefácio

Visão Geral

  • Compatibilidade entre Versões
  • Arquivos Incluídos com o Runtime Environment para Linux
  • Contrato de Licença
  • O Compilador JIT (Just-In-Time)
  • Native Method Interface e Java Native Interface
  • Configurando o Runtime Environment para Linux

    Desinstalando o Runtime Environment para Linux

  • Desinstalando o Pacote RPM (Red Hat Package Manager) Instalável
  • Desinstalando o Pacote TAR (Tape Archive) Compactado
  • Ativando um Aplicativo Java

  • Resumo de Comandos
  • Opções
  • Opções Padrão
  • Opções Não-padrão
  • Globalização do Comando Java
  • Trabalhando com Classpaths
  • |Como a JVM Processa Sinais
  • |Sinais Utilizados pela JVM
  • |Vinculando um Driver de Código Nativo à Biblioteca de Cadeia de Sinais
  • Trabalhando com Bootclasspath
  • Especificando Política de Coleta de Lixo
  • Tempo de Pausa
  • Redução do Tempo de Pausa
  • Ambiente com Heaps Muito Cheios
  • Informações Adicionais sobre Coleta de Lixo
  • Obtendo o Número de Compilação e Versão IBM

    Utilizando o Plug-in Java

  • Instalando e Configurando o Plug-in Java
  • Instalando o Plug-in Java para Mozilla
  • Navegadores Suportados
  • Utilizando Parâmetros DBCS
  • Utilizando o Web Start

  • Instalando o Web Start
  • Trabalhando com Pilhas Flutuantes

    Alternando o Método de Entrada em Idiomas DBCS

    Exemplo de Tempo de Execução

    Instalando o Aplicativo em um Sistema de Usuário

    Limitações Conhecidas

    Avisos

  • Marcas

  • Visão Geral

    O Runtime Environment para Linux contém o subconjunto das classes exigidas para criar um Java Runtime Environment e executar programas Java. Ele também contém a JVM (Java Virtual Machine), classes Java e arquivos de suporte. O Runtime Environment para Linux contém apenas um subconjunto das classes encontradas no SDK.


    Compatibilidade entre Versões

    |Em geral, qualquer applet ou aplicativo executado na Versão |1.1.8, 1.2.2 ou 1.3.1 do SDK para |Linux deverá ser executado corretamente nesta versão. Os applets que |dependem das APIs Java 1.4.1 da Sun funcionam apenas nos |navegadores que suportam APIs Java 1.4.1.

    Não há garantia alguma de que as classes compiladas 1.4.1 irão funcionar nos releases do Runtime Environment anteriores à versão 1.4.0.


    Arquivos Incluídos com o Runtime Environment para Linux

    O Runtime Environment para Linux inclui arquivos .so não depuráveis e os arquivos de classe necessários para suportar um programa no tempo de execução. O produto Runtime Environment para Linux não inclui nenhuma das ferramentas de desenvolvimento, como appletviewer ou javac, nem classes que pertençam apenas a um sistema de desenvolvimento.

    Além disso, o pacote de API (Aplication Programming Interface) do Java Communications é fornecido para uso com o Runtime Environment para Linux.


    Contrato de Licença

    O arquivo LICENSE_xx.html contém o contrato de licença para o software Runtime Environment para Linux. (xx é a abreviação do idioma.)

    Para exibir ou imprimir o contrato de licença, abra o arquivo em um navegador da Web.


    O Compilador JIT (Just-In-Time)

    O compilador JIT (Just-In-Time) (libjitc.so) gera dinamicamente o código da máquina para seqüências de bytes utilizados com freqüência nos aplicativos e applets Java durante sua execução.

    O Runtime Environment para Linux inclui o compilador JIT (libjitc.so), que está ativado por padrão. É possível desativar o JIT para ajudar no isolamento de um problema com um aplicativo Java, um applet ou o próprio compilador.

    Para desativar o JIT, em um shell da janela em que irá executar o aplicativo, digite:

    export JAVA_COMPILER=NONE
    

    Para ativar o JIT, em um prompt do shell , digite:

        export JAVA_COMPILER=jitc
    

    Para verificar se o JIT está ativado ou não, em um prompt do shell , digite:

        java -version
    

    Se o JIT estiver sendo utilizado, será exibida uma mensagem que inclui:

    (JIT enabled: jitc)
    

    Se o JIT não estiver sendo utilizado, será exibida uma mensagem que inclui:

    (JIT disabled)
    


    Native Method Interface e Java Native Interface

    A IBM não suporta a Native Method Interface neste release. Não utilize essa interface em seus aplicativos.

    A JNI (Java Native Interface) está incluída no Runtime Environment. Para obter informações sobre o uso da JNI, consulte o Web site da Sun: http://java.sun.com.


    Configurando o Runtime Environment para Linux

    Depois de instalar o Runtime Environment para Linux, edite o script de login do shell e adicione este diretório à instrução PATH:

    /opt/IBMJava2-141/jre/bin

    Se tiver instalado o Runtime Environment para Linux em um diretório que não seja /opt/IBMJava2-141/, substitua /opt/IBMJava2-141/ pelo diretório no qual instalou o Runtime Environment para Linux.


    Desinstalando o Runtime Environment para Linux

    O processo que você utiliza para remover o Runtime Environment para Linux depende se você instalou o pacote RPM (Red Hat Package Manager) instalável ou o pacote TAR (Tape Archive) compactado. Veja instruções nos tópicos Desinstalando o Pacote RPM (Red Hat Package Manager) Instalável ou Desinstalando o Pacote TAR (Tape Archive) Compactado.


    Desinstalando o Pacote RPM (Red Hat Package Manager) Instalável

    Para desinstalar o Runtime Environment para Linux se tiver instalado o pacote RPM instalável:

    1. Em um script do shell, digite:

          rpm -e IBMJava2-JRE-1.4.1     
      

      Como alternativa, você pode utilizar uma ferramenta gráfica como kpackage ou yast2.

    2. Remova da instrução PATH o diretório no qual você instalou o Runtime Environment.

    3. Se o Plug-in Java foi instalado, remova os arquivos do Plug-in Java do diretório do Netscape.



    Desinstalando o Pacote TAR (Tape Archive) Compactado

    Para desinstalar o Runtime Environment para Linux, caso tenha instalado o pacote TAR compactado:

    1. Remova os arquivos do Runtime Environment do diretório no qual você instalou o Runtime Environment.

    2. Remova da instrução PATH o diretório no qual você instalou o Runtime Environment.

    3. Se o Plug-in Java foi instalado, remova os arquivos do Plug-in Java do diretório do Netscape.


    Ativando um Aplicativo Java

    A ferramenta java ativa um aplicativo Java.

    A JVM pesquisa a classe de inicialização e as outras classes utilizadas nos três conjuntos de localizações: o classpath bootstrap, as extensões instaladas e o classpath do usuário. Os argumentos após o nome da classe ou nome do arquivo JAR são transmitidos para a função principal.

    O comando javaw é idêntico ao java, exceto que o javaw não possui janela de console associada. Utilize javaw quando não desejar que uma janela de prompt de comandos seja exibida. O ativador javaw exibirá uma caixa de diálogo com informações sobre erros se houver falha na ativação.


    Resumo de Comandos

    Os comandos java e javaw utilizam a seguinte sintaxe:

    java [ opções ] class [ argumentos ... ]
    java [ opções ] -jar file.jar [ argumentos ... ]
    javaw [ opções ] class [ argumentos ... ]
    javaw [ opções ] -jar file.jar [ argumentos ... ]
     
    

    Os itens entre colchetes são opcionais.

    opções
    Opções de linha de comandos.
    class
    Nome da classe a ser chamada.
    file.jar
    Nome do arquivo jar a ser chamado. Ele é utilizado apenas com -jar.
    argumento
    Argumento aprovado para função main.

    Se a opção -jar for especificada, o arquivo JAR nomeado irá conter arquivos de classe e recurso para os aplicativos com a classe de inicialização indicada pelo cabeçalho do manifesto Main-Class.


    Opções

    O ativador possui um conjunto de opções padrão suportadas no ambiente de tempo de execução atual e que serão suportadas em releases futuros. Além disso, existe um conjunto de opções fora do padrão.

    Opções Padrão

    -D<nome_propriedade>=<valor>

    Define uma propriedade do sistema.

    -assert

    Imprime ajuda para opções relacionadas a declaração.

    -cp ou -classpath <diretórios e arquivos zip ou jar separados por :>

    Define o caminho de pesquisa para classes de aplicativo ou recursos. Se as opções -classpath e -cp não forem utilizadas e CLASSPATH não estiver definido, o usuário classpath será, por padrão, o diretório atual (.). Consulte também Trabalhando com Classpaths.

    -help ou -?

    Exibe uma mensagem de utilização.

    -showversion

    Imprime a versão do produto e continua.

    -verbose[:class | gc | jni]

    Permite saída interativa.

    -version

    Exibe a versão do produto.

    -X

    Exibe a ajuda para opções que não são padrão.

    Opções Não-padrão

    As opções -X listadas abaixo são um subconjunto das opções disponíveis. Elas não fazem parte do padrão e estão sujeitas a alteração sem aviso prévio.

    -Xargencoding

    Permite que as opções no comando java utilizem seqüências de escape Unicode para representar caracteres que não estejam no conjunto de caracteres da localidade. Seqüências de escape Unicode estão no formato \u####, em que # é um dígito hexadecimal.

    -Xbootclasspath:< diretórios e arquivos jar ou zip separados por ;>

    Define o caminho de pesquisa para classes e recursos bootstrap. Existem outras maneiras de definir bootclasspath. Consulte Trabalhando com Bootclasspath. |Não implemente aplicativos que utilizam essa opção para substituir |uma classe em core.jar, graphics.jar, server.jar, |security.jar, xml.jar, tools.jar ou charsets.jar, |pois tal implementação violaria a licença do código binário do Java 2 Runtime |Environment.

    -Xbootclasspath/a:< diretórios e arquivos zip ou jar separados por ;>

    Anexa ao final do caminho da classe bootstrap.

    |-Xbootclasspath/p:< diretórios e arquivos |zip ou jar separados por ;> |

    |Coloca na frente do caminho de classe de bootstrap. Não implemente aplicativos que utilizam essa opção para substituir |uma classe em core.jar, graphics.jar, server.jar, |security.jar, xml.jar, tools.jar ou charsets.jar, |pois tal implementação violaria a licença do código binário do Java 2 Runtime |Environment. |

    -Xcheck:jni

    Executa verificações adicionais das funções JNI.

    -Xcheck:nabounds

    Executa verificações adicionais das operações de array JNI.

    -Xdebug

    Inicia a JVM com o depurador ativado.

    |-Xdisableexplicitgc |

    |Altera as chamadas para System.gc() no no-ops. |

    -Xdisablejavadump

    Desativa o recursos de dump Java para encerramento anormal de processos. Quando o dump java estiver desativado, o dump de encerramento do processo do sistema será executado. O dump java é útil quando o problema ocorrer dentro do código java. Se o problema estiver nos componentes do sistema, é possível que seja mais útil obter o dump de sistema normal.

    |-Xgcpolicy:{optthruput | optavgpause} |

    |Especifica a definição de coleta de lixo. A definição padrão é |optthruput. Para obter mais informações, consulte Especificando Política de Coleta de Lixo. |

    -Xms<tamanho>

    Define o tamanho do heap Java inicial.

    -Xmx<tamanho>

    Define o tamanho máximo do heap Java.

    -Xnoclassgc

    Desativa coleta de lixo da classe.

    -Xoss<tamanho>

    Define o tamanho máximo de pilha Java para qualquer encadeamento.

    -Xquickstart

    |Aprimora o tempo de inicialização dos aplicativos. Se você |não especificar essa opção, a compilação inicial dos métodos será feita em |alta otimização (isto é, o JIT não recompila métodos "hot" porque os métodos |são inicialmente compilados com alta otimização).

    -Xrs

    Reduz o uso de sinais de sistema operacional.

    -Xrunnome_biblioteca[:opções]

    Carrega bibliotecas assistentes. Para carregar múltiplas bibliotecas, especifique-a mais de uma vez na linha de comandos. Exemplos dessas bibliotecas são:
    • -Xrunhprof[:ajuda] | [:<opção>=<valor>, ...]
      Executa o perfil do heap, da CPU ou do monitor.
    • -Xrunjdwp[:ajuda] | [:<opção>=<valor>, ...]
      Carrega bibliotecas de depuração para suporte da depuração remota de aplicativos.

    -Xss<tamanho>

    Define o tamanho máximo da pilha nativa para qualquer encadeamento. Para obter informações adicionais, consulte Trabalhando com Pilhas Flutuantes.

    |-Xverbosegclog:<caminho para o |arquivo><nome do arquivo>[X, Y] |

    |Faz com que a saída verboseGC seja gravada no arquivo especificado. |Se o arquivo sair, ele será sobrescrito. Caso contrário, se um arquivo |existente não puder ser aberto ou um novo arquivo não puder ser criado, a |saída será redirecionada para stderr. Se você especificar os argumentos |X e Y (ambos são inteiros) a saída verboseGC será redirecionada para o número |Y de arquivos, cada um contendo o número X de ciclos gc equivalente à saída |verboseGC. Esses arquivos possuem o formato nome de arquivo1, nome |de arquivo2 e assim por diante.
    |Nota:
    A variável de ambiente IBM_JVM_ST_VERBOSEGC_LOG foi removida deste |release. |
    |

    -Xverify

    Permite verificações mais rigorosas, antecipando o padrão futuro.

    Globalização do Comando Java

    O comando java e outros comandos do ativador java (como javaw) permitem que um nome de classe seja especificado como qualquer caractere Unicode que esteja no conjunto de caracteres da localidade atual.

    Você poderá especificar qualquer caractere Unicode no nome de classe e argumentos utilizando seqüências de escape java. Para fazê-lo, será necessário especificar -Xargencoding. Para especificar um caractere Unicode, utilize seqüências de escape no formato \u####, em que # é um dígito hexadecimal (0 a 9, A a F).

    Para especificar que o nome de classe e argumentos de comando estejam em codificação UTF8 ou ISO8859_1, utilize -Xargencoding:utf8 e -Xargencoding:latin.

    No Runtime Environment, se estiver utilizando uma localidade que não esteja em inglês, os comandos java e javaw fornecerão mensagens de saída traduzidas. Essas mensagens diferem das mensagens da versão 1.3.1 e diferem também com base na localidade na qual o Java está sendo executado. As descrições detalhadas dos erros e outras informações de depuração retornadas pelo java estão em inglês. As informações de depuração retornadas durante a inicialização são mostradas entre colchetes.


    Trabalhando com Classpaths

    No Runtime Environment, você poderá especificar um nome de classe como um nome de arquivo completo, incluindo um caminho completo e a extensão .class. Nas versões anteriores do SDK, só era possível especificar a classe relativa ao CLASSPATH e a extensão .class não era permitida. O uso do nome de arquivo completo permite que você ative um aplicativo java pelo desktop ou pelo ativador de arquivos. Se você especificar um arquivo .class com caminho e extensão, o caminho especificado será colocado em CLASSPATH. Por exemplo, o comando java c:\myapp\thisapp.class equivale a especificar java -classpath c:\myapp thisapp.


    |Como a JVM Processa Sinais

    |Quando surge um sinal que é do interesse da JVM, uma rotina de tratamento |de sinais é chamada. Essa rotina de tratamento de sinais determina se o |sinal foi chamado por causa de um encadeamento Java ou não-Java. Se o |sinal for por causa de um encadeamento Java, a JVM assumirá o controle do |tratamento do sinal. Se o sinal for por causa de um encadeamento |não-Java, e o aplicativo que instalou a JVM tiver instalado anteriormente sua |própria rotina de tratamento para o sinal, o controle será fornecido a essa |rotina de tratamento. Caso contrário, o sinal será ignorado (quer isso |seja ou não a ação padrão do sinal).

    |Com relação aos sinais de exceção e erro, a JVM: |

    |Com relação aos sinais de interrupção, a JVM insere também uma seqüência de |encerramento controlado, mas dessa vez ela é tratada como uma terminação |normal: |

    |O encerramento é idêntico ao encerramento iniciado por uma chamada para o |método System.exit().

    |Outros sinais utilizados pela JVM destinam-se a propósitos de controle |interno e não causam a sua terminação. O único sinal de controle de |interesse é SIGQUIT, o que faz com que um dump de núcleo do Java seja |gerado.

    |Sinais Utilizados pela JVM

    |A Tabela 1 a seguir mostra os sinais utilizados pela JVM. Os |sinais foram agrupados na tabela por tipo ou uso, como se segue: |


    |

    |Tabela 1. Sinais Utilizados pela JVM

    Nome do Sinal Tipo de Sinal Descrição Desativado pelo -Xrs
    SIGSEGV Exceção Acesso incorreto à memória (gravar para memória inacessível) Não
    SIGILL Exceção Instrução inválida (tentativa de chamar uma instrução de máquina desconhecida) Não
    SIGFPE Exceção Exceção de ponto flutuante (dividir por zero) Não
    SIGBUS Exceção Erro de barramento (tentativa de endereçamento à localização de memória inexistente) Sim
    SIGSYS Exceção Emitida chamada do sistema inválida Sim
    SIGXCPU Exceção O limite de tempo da CPU foi excedido (passou-se um tempo muito longo sem execução) Sim
    SIGXFSZ Exceção O limite de tamanho do arquivo foi excedido Sim
    SIGABRT Erro Finalização anormal. A JVM emite esse sinal sempre que detecta uma falha da JVM. Sim
    SIGINT Interrupção Atenção interativa (CTRL-C). A JVM sai normalmente. Sim
    SIGTERM Interrupção Pedido de finalização. A JVM sairá normalmente. Sim
    SIGHUP Interrupção Interromper. A JVM sai normalmente. Sim
    SIGUSR1 Controle Definido pelo usuário. Utilizado por algumas JVMs para propósitos de controle interno. Não
    SIGUSR2 Controle Definido pelo usuário. Utilizado por algumas JVMs para propósitos de controle interno. Não
    SIGQUIT Controle Um sinal de saída de um terminal. A JVM utiliza isso para efetuar dumps de núcleo do Java. Sim
    SIGTRAP Controle Interno para uso do dbx ou ptrace. Utilizado por algumas JVMs para propósitos de controle interno. Sim
    SIGPIPE Controle Uma gravação para um canal que não está sendo lido. A JVM ignora isso. Não

    |Utilize a opção -Xrs (reduz uso de sinais) para evitar que a |JVM utilize a maior parte dos sinais. Para obter informações |adicionais, consulte a página do ativador de aplicativos Java da Sun no |endereço http://java.sun.com/j2se/1.4.1/docs/tooldocs/windows/java.html.

    |Os sinais 1 (SIGHUP), 2 (SIGINT), 4 |(SIGILL), 6 (SIGABRT), 7 (SIGEMT), 8 |(SIGFPE), 10 (SIGBUS), 11 (SIGSEGV), 12 |(SIGSYS), 15 (SIGTERM), e 24 (SIGXCPU) provocam o |encerramento da JVM; por essa razão, uma rotina de tratamento de sinais |do aplicativo não deverá ser tentada para a recuperação destes, a menos que os |serviços da JVM não sejam mais necessários.

    |Vinculando um Driver de Código Nativo à Biblioteca de Cadeia de Sinais

    |A JVM do IBM 32-Bit Runtime Environment para Linux na Arquitetura Intel, |Java 2 Technology Edition, Versão 1.4.1 contém um novo recurso |de cadeia de sinais. A cadeia de sinais permite que a JVM interopere |mais eficazmente com o código nativo que instala suas próprias rotinas de |tratamento de sinais.

    |O recurso de cadeia de sinais permite que um aplicativo vincule e carregue |a biblioteca compartilhada libjsig.so antes da |libc/libthread/libpthread. A biblioteca jsig.dll assegura que as |chamadas signal(), sigset() e sigaction() |sejam interceptadas para que suas rotinas de tratamento não substituam as |rotinas de tratamento de sinais da JVM. Em vez disso, essas chamadas |salvam as novas rotinas de tratamento de sinais, ou as "encadeia" ocultas sob |as rotinas de tratamento instaladas pela JVM. Mais tarde, quando |qualquer um desses sinais surgir e for verificado que eles não se destinam à |JVM, as rotinas de tratamento pré-instaladas serão chamadas.

    |Para utilizar libjsig.so: |

    |Se você instalar rotinas de tratamento de sinais que utilizam |sigaction(), alguns sa_flags não serão observados quando |a JVM utilizar o sinal. São elas: |

    |A biblioteca libjsig.so oculta também as rotinas de tratamento de |sinais da JVM do aplicativo. Por essa razão, chamadas como |signal(), sigset() e sigaction() que são |feitas após o início da JVM não retornam mais uma referência à rotina de |tratamento de sinais da JVM; em vez disso, retornam qualquer rotina de |tratamento que foi instalada antes da inicialização da JVM.


    Trabalhando com Bootclasspath

    Você pode definir a propriedade do sistema ibm.jvm.bootclasspath utilizando a opção -D descrita em Ativando um Aplicativo Java. O valor dessa propriedade é utilizado como um caminho de pesquisa adicional, que é inserido entre qualquer valor definido por -Xbootclasspath/p: e o classpath bootstrap. O classpath bootstrap é o padrão ou aquele definido por meio da opção -Xbootclasspath:.


    Especificando Política de Coleta de Lixo

    A opção -Xgcpolicy de tempo de execução JVM especifica a política de coleta de lixo.

    -Xgcpolicy utiliza dois valores, optthruput (padrão) e optavgpause. A opção controla o comportamento do coletor de lixo, fazendo trocas entre o throughput do aplicativo e o sistema geral, e faz com que os tempos de pausa sejam causados pela coleta de lixo.

    O formato da opção e seus valores são:

    -Xgcpolicy:optthruput

    e

    -Xgcpolicy:optavgpause

    Tempo de Pausa

    Quando a tentativa de um aplicativo em criar um objeto não pode ser atendida imediatamente no espaço disponível no heap, o coletor de lixo é responsável pela identificação de objetos não referidos (lixo), por excluí-los e retornar o heap para um estado no qual pedidos de alocação imediatos e subseqüentes possam ser atendidos rapidamente. Tais ciclos de coleta de lixo introduzem pausas inesperadas ocasionais na execução do código do aplicativo. Como os aplicativos aumentam de tamanho e complexidade e os heaps tornam-se correspondentemente maiores, esse tempo de pausa da coleta de lixo tende a aumentar de tamanho e importância. O valor padrão de coleta de lixo, optthruput, fornece um rendimento alto para aplicativos, mas com o custo das pausas ocasionais, que podem variar de alguns milissegundos até vários segundos, dependendo do tamanho do heap e quantidade de lixo.

    Redução do Tempo de Pausa

    A opção optavgpause reduz substancialmente o tempo gasto nessas pausas de coleta de lixo, além de limitar o efeito do aumento do tamanho do heap na duração da pausa da coleta de lixo. Essa opção é especialmente importante para as configurações que possuem heaps grandes. Os tempos de pausa são reduzidos pela execução de algumas atividades de coleta de lixo que ocorrem em conjunto com a execução normal do programa. Com o tempo de pausa reduzido, você poderá perceber uma redução do throughput do aplicativo, que varia de aplicativo para aplicativo.

    Ambiente com Heaps Muito Cheios

    Se o heap Java estiver quase cheio, e houver pouco lixo para ser recuperado, os pedidos de novos objetos poderão não ser atendidos rapidamente por não haver espaço disponível de imediato. Se o heap for operado com capacidade quase cheia, o desempenho do aplicativo poderá ser afetado, independentemente de quais opções anteriores forem utilizadas; e, se os pedidos de mais espaço para o heap continuarem a ser feitos, o aplicativo receberá uma exceção OutofMemory, o que resultará na finalização da JVM caso a exceção não seja capturada e tratada. Nessas condições, recomenda-se aumentar o tamanho do heap utilizando a opção -Xmx ou reduzir o número de objetos do aplicativo em uso.

    Informações Adicionais sobre Coleta de Lixo

    Para obter informações adicionais detalhadas sobre coleta de lixo, consulte:

    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/

    |Para obter informações sobre o tratamento de fugas de memória no |aplicativo Java, consulte: http://www.ibm.com/developerworks/library/j-leaks/index.html.


    Obtendo o Número de Compilação e Versão IBM

    Para obter o número de compilação e versão IBM, em um prompt do shell, digite:

    java -version


    Utilizando o Plug-in Java

    O Plug-in Java está documentado pela Sun no endereço: http://java.sun.com/j2se/1.4.1/docs/guide/plugin/developer_guide/.

    O Plug-in Java não suporta impressão neste release do SDK.


    Instalando e Configurando o Plug-in Java

    O Plug-in Java é um plug-in de navegador da Web. Se utilizar o Plug-in Java, você poderá ignorar a Java Virtual Machine padrão do navegador da Web, utilizando, em substituição, um ambiente JRE (Java Runtime Environment) para executar applets ou beans no navegador.

    Para instalar e configurar o Plug-in Java:

    Instalando o Plug-in Java para Mozilla

    |Para instalar e configurar o Plug-in Java para Netscape 6 ou |Mozilla, crie um link simbólico do arquivo de biblioteca |/opt/IBMJava2-141/jre/bin/libjavaplugin_oji.so para o diretório de |plugins do navegador (/brower-install-path/plugins).

    Para disponibilizar o Plug-in Java para todos os usuários:

    1. Efetue login como o ID do usuário root
    2. Coloque um link simbólico para o arquivo de biblioteca /opt/IBMJava2-141//jre/bin/libjavaplugin_oji.so no diretório de plugins do Mozilla (normalmente, /usr/local/mozilla/plugins/, embora isso possa variar em algumas distribuições).
      ln -s /opt/IBMJava2-141/jre/bin/libjavaplugin_oji.so \
      /usr/local/mozilla/plugins/
      
    Nota:
    libjavaplugin_oji.so deverá ser vinculado simbolicamente em vez de copiado; caso contrário, ele não conseguirá encontrar a localização da JVM.

    Navegadores Suportados


    Tabela 2. Navegadores Suportados pelo Plug-in Java

    Distribuição Versões Padrão do Netscape Versões Suportadas do Netscape Versões Padrão do Mozilla Versões Suportadas do 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

    Utilizando Parâmetros DBCS

    O Plug-in Java suporta caracteres de byte duplo (por exemplo, BIG-5 para Chinês Tradicional, Coreano, Japonês) como parâmetros para as marcações <APPLET>, <OBJECT> e <EMBED>. Será necessário selecionar a codificação de caractere correta para seu documento HTML, para que o Plug-in Java possa analisar o parâmetro. Especifique a codificação de caracteres do documento HTML utilizando a marcação <META> na seção <HEAD> desta forma:

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

    Esse exemplo pede que o navegador utilize a codificação de caracteres Chinese BIG-5 para analisar a utilização do arquivo HTML. Todos os parâmetros são aprovados para o Plug-in Java corretamente. No entanto, algumas das versões mais antigas dos navegadores podem não interpretar essa marcação corretamente. Nesse caso, você poderá fazer com que o navegador ignore essa marcação, mas poderá ter de alterar a codificação manualmente.

    Você poderá especificar qual codificação deseja utilizar para analisar o arquivo HTML:


    Utilizando o Web Start

    O Java Web Start é um meio de implementar aplicativos baseados na tecnologia java. Ele conecta o computador e a Internet e permite ao usuário iniciar e gerenciar aplicativos diretamente através da Web. O Java Web Start oferece ativação com um clique do mouse para aplicativos e assegura que você sempre esteja executando a versão mais recente, eliminando procedimentos de instalação e atualização. Geralmente, a distribuição de software pela web requer que você encontre o instalador na Web, faça o download do arquivo e o localize para, em seguida, executá-lo. Após a execução do instalador, ele pede diretório de instalação e opções de instalação como completa, típica ou mínima. Isso pode levar muito tempo e pode vir a ser uma tarefa bastante complicada, que deve ser repetida para cada versão do software.

    Por outro lado, aplicativos implementados na Web, como seu cliente de e-mail e calendário baseados em HTML, são simples de instalar e utilizar. O navegador da Web tornou o processo automático. Não existem etapas complicadas de download, instalação e configuração e você tem a garantia de estar executando a versão mais recente. O Java Web Start oferece os mesmos benefícios a aplicativos completos.

    Para obter informações sobre os navegadores que suportam o Web Start, consulte a seção Navegadores Suportados.

    Para obter mais informações sobre o Web Start, visite o Web site: http://java.sun.com/products/javawebstart e para obter mais documentação, consulte: http://java.sun.com/j2se/1.4.1/docs/guide/jws/index.html.


    Instalando o Web Start

    O script de instalação do Web Start é instalado com o JRE para Java 1.4.1.

    O script é chamado de jre/bin/webstart_install_sdk.sh. Para utilizar o Web Start, execute o script. Defina o diretório de trabalho atual para a localização na qual você deseja instalar o Web Start. O processo de instalação cria um subdiretório chamado javaws no diretório de trabalho atual.

    O processo de instalação atualiza também os tipos mime utilizados pelo Netscape e por outros navegadores.

    O Web Start pode ser chamado de duas maneiras:

    1. Selecione um link em uma página da Web que faça referência a um arquivo .jnlp.
    2. Inicie o javaws no diretório javaws criado anteriormente, iniciando assim o diálogo Web Start no qual os aplicativos podem ser selecionados.
    3. No script do shell, digite javaws <URL>, em que <URL> é a localização de um arquivo .jnlp.

    Uma dessas ações faz com que o Web Start inicie o aplicativo selecionado. O aplicativo será transferido por download se essa for a primeira vez que ele está sendo utilizado. Nas chamadas posteriores, o Web site original será verificado para ver se há alguma atualização disponível. O Web Start faz o download dessas atualizações antes do início do aplicativo.

    Se ocorrer um erro em um jnlp (um nome de marcação inválido, por exemplo), o Web Start será interrompido sem exibir uma mensagem de erro.


    Trabalhando com Pilhas Flutuantes

    Distribuições específicas do Linux - Red Hat, por exemplo - possuem um recurso GLIBC ativado chamado 'pilhas flutuantes'. Por causa das limitações do kernel Linux, a JVM não será executada em hardware SMP com pilhas flutuantes ativadas caso o nível do kernel seja inferior a 2.4.10. Nesse ambiente, pilhas flutuantes devem ser desativadas antes que a JVM ou qualquer aplicativo que inicie a JVM, sejam iniciados. No Red Hat, utilize este comando para desativar pilhas flutuantes, exportando uma variável de ambiente:

    export LD_ASSUME_KERNEL=2.2.5
    

    Em um sistema Linux de pilha não-flutuante, independentemente do valor que for definido para -Xss, será fornecido um tamanho mínimo de pilha nativa de 256 KB para cada encadeamento. Em um sistema Linux de pilha flutuante, os valores -Xss são aceitos. Por isso, se você estiver migrando de um sistema Linux de pilha não-flutuante, será necessário assegurar-se de que todos os valores de -Xss sejam grandes o suficiente e que não dependam de um mínimo de 256 KB.


    Alternando o Método de Entrada em Idiomas DBCS

    Em sistemas DBCS (Conjunto de Caracteres de Byte Duplo), se deseja trocar o método de entrada, você deve utilizar a classe java.util.prefs.Preferences em vez de utilizar as variáveis de ambiente IBMJAVA_INPUTMETHOD_SWITCHKEY e IBMJAVA_INPUTMETHOD_SWITCHKEY_MODIFIERS. Consulte Especificação de Estrutura do Método de Entrada da Sun em detalhes.


    Exemplo de Tempo de Execução

    O Web site da Sun, http://java.sun.com, contém um exemplo "Hello World" do qual você poderá fazer download. O exemplo demonstra como criar um aplicativo Java simples executado no Runtime Environment.


    Instalando o Aplicativo em um Sistema de Usuário

    Após desenvolver seu produto e estar pronto para expedi-lo, você precisa instalar o produto em um sistema de usuário, configurar o sistema do usuário para suportar o software e configurar o ambiente de tempo de execução.

    Se você utilizar o Runtime Environment para Linux, deverá assegurar-se de que o procedimento de instalação não sobreponha uma instalação já existente (a menos que o Runtime Environment para Linux seja uma versão anterior).

    Para redistribuir o Runtime Environment para Linux, você pode instalá-lo em seu próprio sistema e em seguida copiar os arquivos requeridos do Runtime Environment para o seu conjunto de instalação. Se você escolher essa abordagem, deverá incluir todos os arquivos fornecidos com o Runtime Environment para Linux. O software do Runtime Environment para Linux poderá ser redistribuído somente se todos os arquivos forem incluídos. De fato, quando você envia seu aplicativo, ele tem sua própria cópia do Runtime Environment para Linux.

    Para obter informações específicas sobre os arquivos que devem ser redistribuídos, consulte o contrato de licença que acompanha esse produto.


    Limitações Conhecidas

    As seções a seguir explicam as limitações conhecidas do SDK para o Linux.

    As seguintes limitações se aplicam apenas a usuários do idioma chinês tradicional.


    Avisos

    Estas informações foram desenvolvidas para produtos e serviços oferecidos nos Estados Unidos. É possível que a IBM não ofereça os produtos, serviços ou recursos discutidos neste documento em outros países. Consulte seu representante da IBM local para obter informações sobre os produtos e serviços atualmente disponíveis em sua área. Qualquer referência a produtos, programas ou serviços IBM não significa que apenas produtos, programas ou serviços IBM possam ser utilizados. Qualquer produto, programa ou serviço funcionalmente equivalente, que não infrinja nenhum direito de propriedade intelectual da IBM ou quaisquer outros direitos da IBM, poderá ser utilizado em substituição a este produto, programa ou serviço. Entretanto, a avaliação e verificação da operação de qualquer produto, programa ou serviço não-IBM é de inteira responsabilidade do Cliente.

    A IBM pode ter patentes ou solicitações de patentes pendentes relativas a assuntos tratados nesta publicação. O fornecimento desta publicação não garante ao Cliente nenhum direito sobre tais patentes. Pedidos de licença devem ser enviados, por escrito, para:

    Para consulta de licenças relativas a informações sobre DBCS (byte duplo), entre em contato com o Departamento de Propriedade Intelectual da IBM em seu país ou envie as consultas, por escrito, para:

    O parágrafo a seguir não se aplica a nenhum país em que tais disposições não estejam de acordo com a legislação local:

    A INTERNATIONAL BUSINESS MACHINES CORPORATION FORNECE ESTA PUBLICAÇÃO "NO ESTADO EM QUE SE ENCONTRA", SEM GARANTIA DE NENHUM TIPO, SEJA EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS IMPLÍCITAS DE MERCADO OU DE ADEQUAÇÃO A UM DETERMINADO PROPÓSITO. Alguns países não permitem a exclusão de garantias expressas ou implícitas em certas transações; portanto, esta disposição pode não se aplicar ao Cliente.

    Estas informações podem incluir imprecisões técnicas ou erros tipográficos. Periodicamente, são feitas alterações nas informações aqui contidas; tais alterações serão incorporadas em futuras edições desta publicação. A IBM pode fazer aperfeiçoamentos e/ou alterações nos produtos e/ou programas descritos nesta publicação, a qualquer momento, sem aviso prévio.

    Referências nestas informações a Web sites não-IBM são fornecidas apenas por conveniência e não representam de forma alguma um endosso a esses Web sites. Os materiais contidos nesses Web sites não fazem parte dos materiais deste produto IBM e a utilização desses Web sites é de responsabilidade do usuário.

    A IBM pode utilizar ou distribuir qualquer informação fornecida, da forma que julgar apropriada, sem que isso incorra em qualquer obrigação para com o Cliente.

    Licenciados deste programa que pretendam obter mais informações sobre o mesmo com o objetivo de permitir: (i) a troca de informações entre programas criados independentemente e outros programas (incluindo este) e (ii) a utilização mútua das informações trocadas, devem entrar em contato com:

    Tais informações podem estar disponíveis, sujeitas a termos e condições apropriados, incluindo, em alguns casos, o pagamento de uma taxa.

    O programa licenciado descrito neste documento e todo o material licenciado disponível são fornecidos pela IBM sob os termos do Contrato com Cliente IBM, Contrato de Licença de Programa Internacional IBM ou qualquer contrato equivalente.

    Todos os dados de desempenho aqui descritos foram determinados em um ambiente controlado. Portanto, os resultados obtidos em outros ambientes operacionais podem variar significativamente. Algumas medidas podem ter sido tomadas em sistemas em fase de desenvolvimento e não há garantia de que tais medidas sejam as mesmas nos sistemas normalmente disponíveis. Além disso, algumas medições podem ter sido estimadas através de extrapolação. Os resultados reais podem variar. Os usuários deste documento devem verificar os dados que se aplicam ao seu ambiente específico.

    As informações referentes a produtos não-IBM foram obtidas junto a fornecedores desses produtos, anúncios publicados ou outras fontes publicamente disponíveis. A IBM não testou esses produtos e não pode confirmar a precisão de desempenho, compatibilidade nem qualquer outra reivindicação relacionada a produtos não-IBM. Dúvidas sobre os recursos dos produtos não-IBM devem ser encaminhadas aos fornecedores dos respectivos produtos.


    Marcas

    IBM é uma marca da International Business Machines Corporation nos Estados Unidos e/ou em outros países.

    Java e todas as marcas e logotipos baseados em Java são marcas ou marcas registradas da Sun Microsystems, Inc., nos Estados Unidos e/ou em outros países.

    Outros nomes de empresas, produtos ou serviços podem ser marcas ou marcas de serviço de terceiros.

    Este produto inclui software desenvolvido pela Apache Software Foundation http://www.apache.org/.