Nota: Antes de utilizar estas informações e o produto que elas suportam, certifique-se de ler as informações gerais em Avisos.
A edição deste Guia do Usuário se aplica ao IBM 64-bit Runtime Environment para Windows na arquitetura Intel Itanium, Java 2 Technology Edition, Versão 1.4.2, e a todos os releases e modificações subseqüentes, até que seja indicado de outra maneira em novas edições.
(c) Copyright Sun Microsystems, Inc. 1997, 2003, 901 San Antonio Rd., Palo Alto, CA 94303 USA. Todos os direitos reservados.
(c) Copyright International Business Machines Corporation, 1999, 2004. 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.
O IBM(R) 64-bit Runtime Environment para Windows(R) na arquitetura Intel(R) Itanium(R), Java(TM) 2 Technology Edition, Versão 1.4.2 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 IBM Runtime Environment 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.
O Runtime Environment é suportado no Microsoft(R) Windows XP 64-Bit Edition e no Windows Server 2003 64-Bit Edition.
O Manual de Diagnóstico IBM JVM fornece informações mais detalhadas sobre o IBM JVM.
Observe que o Runtime Environment para Windows é 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 para este Guia do Usuário Versão 1.4.2, com exceção de alterações menores ou evidentes, como a atualização de "1.4.1" para "1.4.2", estão indicadas em vermelho ao visualizar o HTML ou uma cópia impressa colorida e por barras verticais à esquerda das alterações.
Não há garantia de que as classes compiladas 1.4.2 funcionarão nos releades do Runtime Environment anteriores a 1.4.0.
Para obter o número de compilação e versão IBM, em um prompt do , digite:
java -version
O compilador JIT (Just-In-Time) (jitc.dll) gera dinamicamente o código de máquina para as seqüências de bytecode freqüentemente utilizadas nos aplicativos e applets do Java enquanto são executados.
O Runtime Environment para Windows inclui o JIT (jitc.dll), que é 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 prompt de comandos da janela em que irá executar o aplicativo, digite:
set JAVA_COMPILER=NONE
Para ativar o JIT, em um prompt do , digite:
set JAVA_COMPILER=jitc
Para verificar se o JIT está ativado ou não, em um prompt do , 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)
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.
Os comandos java e javaw utilizam a seguinte sintaxe:
java [ opções ] classe [ argumentos ... ] java [ opções ] -jar arquivo.jar [ argumentos ... ] javaw [ opções ] classe [ argumentos ... ] javaw [ opções ] -jar arquivo.jar [ argumentos ... ]
Os itens entre colchetes são opcionais.
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.
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, há um conjunto de opções fora do 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.
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.
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 é equivalente a especificar java -classpath c:\myapp thisapp.
Para definir uma classe java ou arquivo jar para execução automática a partir do arquivo, utilize a opção Ferramentas->Opções de Pasta->Tipos de Arquivo do Windows Explorer. Como alternativa, você pode digitar em um prompt de comandos:
assoc .class=javaclass ftype javaclass=C:\Program Files\IBM\Java142\jre\bin\java.exe %l %*
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 caminho de classe de auto-inicialização é o padrão ou aquele definido por meio da opção -Xbootclasspath:.
Não implemente aplicativos que utilizem a opção -Xbootclasspath: ou -Xbootclasspath/p: para substituir uma classe em 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.
A opção -Xgcpolicy de tempo de execução JVM especifica a política de coleta de lixo.
-Xgcpolicy possui os valores optthruput (o padrão) ou 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
-Xgcpolicy:optavgpause
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 exclui-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.
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.
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. Neste ponto o JVM produzirá dois arquivos de diagnóstico: um Heapdump e um Javadump. Eles estão detalhados no Manual de Diagnóstico para Java 1.4.2 e podem ser utilizados para determinar o que causou a alta ocupação do heap do Java. O Manual de Diagnóstico está no developerWorks, em: http://www-106.ibm.com/developerworks/java/jdk/diagnosis/. 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.
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/
| | |O conjunto de encadeamento para as Rotinas de Tratamento de Conexão do RMI não é |ativado por padrão.
|Para ativar o conjunto de conexão implementado no nível TCPTransport do RMI, |defina a opção
|-Dsun.rmi.transport.tcp.connectionPool=true (ou qualquer valor que não seja nulo)|
Essa versão do Runtime Environment não possui nenhuma definição que |você possa utilizar para limitar o número de encadeamentos no conjunto de conexão.
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 o 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). A exceção a essa regra está no Windows, em que para um sinal gerado externamente (por exemplo, quando você pressiona CTRL-C ou CTRL-BREAK) um novo encadeamento é criado para executar a rotina de tratamento de sinais. Nesse caso, a rotina de tratamento de sinais da JVM supõe que o sinal seja por causa da JVM.
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 é SIGBREAK, o que faz com que um Javadump seja gerado.
A Tabela 1 a seguir mostra os sinais utilizados pela JVM. Os sinais foram agrupados na tabela por tipo ou uso, como se segue:
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 |
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 |
SIGBREAK | Controle | Um sinal de pausa proveniente de um terminal. A JVM utiliza isso para efetuar Javadumps. | Sim |
Utilize a opção -Xrs (reduz uso de sinais) para evitar que a JVM manipule a maior parte dos sinais. Para obter informações adicionais, consulte a página do ativador de aplicativos Java da Sun em http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/java.html.
Os sinais 2 (SIGINT), 4 (SIGILL), 6 (SIGABRT), 8 (SIGFPE), 11 (SIGSEGV) e 15 (SIGTERM) 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.
O Runtime Environment contém um 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 jsig.dll antes da msvcrt.dll. A biblioteca jsig.dll assegura que as chamadas para signal() 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 jsig.dll, efetue o link com o aplicativo que cria ou incorpora uma JVM.
Ao trabalhar com um IME (Input Method Editor), recomenda-se que a composição dos caracteres seja completada e o candidato selecionado antes de utilizar a área de trabalho para qualquer outra operação.
Se for um usuário da versão em Chinês Tradicional, não canalize a saída do aplicativo Java diretamente no comando more. Em vez disso, dirija a saída a um arquivo temporário e, em seguida, exiba o arquivo separadamente.
|As limitações a seguir se aplicam ao Windows XP para japonês e ao Windows |XP para chinês tradicional. Quando um usuário digitar texto em uma Área de Texto AWT |enquanto estiver utilizando um IME e, em seguida, redimensionar a janela do aplicativo |antes de consolidar o texto, ele será consolidado automaticamente.
Caso tenha algum comentário sobre a utilidade, ou não, deste Guia do Usuário, gostaríamos de saber sua opinião por meio de um desses canais. Observe que esses canais não foram implementados para responder perguntas técnicas - os canais são apenas para comentários sobre a documentação. Envie seus comentários:
Letras Miúdas. Ao mandar uma mensagem para a IBM, o Cliente concorda que todas as informações contidas em sua mensagem, incluindo dados sobre feedback, como perguntas, comentários, sugestões ou informações similares, serão classificadas como não-confidenciais; a IBM não possui nenhuma obrigação de qualquer tipo em relação a tais informações e poderá reproduzir, utilizar, divulgar e distribuir as informações a terceiros sem nenhuma limitação. A IBM poderá usar todas as idéias, conceitos, conhecimentos ou técnicas contidas em tais informações para o fim que desejar, incluindo, mas não se limitando a desenvolvimento, fabricação e marketing de produtos incorporando tais informações.
Estas informações foram desenvolvidas para produtos e serviços oferecidos nos Estados Unidos. A IBM pode não oferecer 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 pedidos de licenças com relação a informações sobre DBCS (Conjunto de Caracteres de Byte Duplo), entre em contato com o Departamento de Propriedade Intelectual da IBM em seu país ou envie pedidos, 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.
IBM é uma marca comercial da International Business Machines Corporation nos Estados Unidos e/ou em outros países.
IBM é uma marca comercial da International Business Machines Corporation nos Estados Unidos e/ou em outros países.
Java e todas as marcas comerciais e logotipos baseados em Java são marcas comerciais ou marcas comerciais registradas da Sun Microsystems, Inc., nos Estados Unidos e/ou em outros países.
Microsoft, Windows, Windows NT e o logotipo do Windows são marcas comerciais da Microsoft Corporation nos Estados Unidos e/ou em outros países.
Intel, Intel Inside (logotipos), MMX e Pentium são marcas comerciais da Intel Corporation nos Estados Unidos e/ou em outros países.
Outros nomes de empresas, produtos ou serviços podem ser marcas comerciais ou marcas de serviço de terceiros.
Este produto inclui software desenvolvido pela Apache Software Foundation http://www.apache.org/.