Pergunta

Eu tenho um servidor - aplicativo cliente que é executado em java 1.3; eu quero mudar para java 1.6 passo a passo, ou seja, primeiro alguns clientes, de resto dos clientes e, finalmente, servidor ... eu queria saber que você poderia me indicar alguns problemas comuns que podem vir junto e que eu deveria cuidar?

Foi útil?

Solução

Sun tenta manter um alto nível de compatibilidade com versões anteriores, então você possivelmente pode simplesmente instalar a nova JVM e reiniciar o aplicativo com ele.

Um documento que descreve as versões anteriores-incompatibilidades de Java 1.6 com versão anterior é aqui . Este documento vincula a compatibilidade-documentos para Java 1.5 e Java 1.4 também. Você provavelmente vai querer ler este documentos para aprender sobre possíveis armadilhas.

Java 1.5 e Java 1.6 introduziu nova classe-file-formatos. O JVM será executado a velha classe-arquivos, bem como, mas recompilar seu código - especialmente com JDK 1.6 - vai ajudar a nova JVM para tirar proveito de algumas mudanças para tornar a sua aplicação mais rápida. Então você pode considerar a recompilação.

Além disso algumas novas palavras-chave foram introduzidas, nomeadamente assert (em 1.4) e enumeração (em 1,5) (como Yuval já mencionado). Se você usar essas palavras como identificadores, uma recompilação irá falhar, mas a velha classe-arquivos vai funcionar. Você pode fornecer o -source interruptor para javac para deixá-lo compilar:. 'javac -source 1.3' irá compilar o código sem assert e enum como palavra-chave

Outras dicas

Em cima da minha cabeça, olhar para o enum nomes e assert em campos e variáveis ??locais ... Estas palavras tornaram-se palavras-chave em java 1.4 e 5. O compilador Java 6 irá marcá-los como erros de compilação se vê .

Yuval = 8-)

Sun mantém uma lista de incompatibilidades que são introduzidas a cada nova versão do Java.

O último documento para 1.4.2 tem links para a compatibilidade notas voltar para JDK 1.0.

Geralmente, a compatibilidade com versões anteriores de JVMs da Sun é muito bom, mas não perfeito. Eu vi três aplicações muito grandes migrar 1,3-1,5 e encontrar apenas um pequeno número de problemas, a maior das quais era uma máscara balanço indo para um evento infinito manipulação loop e congelar o app no ??ponto 1.4

A parte do servidor é improvável que causam problemas, mas tem havido muito grandes mudanças sob o capô em Swing, especialmente entre 1,3 e 1,4 -. Subsistema foco foi completamente reescrito, por exemplo

É ainda possível que o aplicativo será executado sem problemas, mas você definitivamente deve fazer testes extensivos.

Quando me mudei de 1.4.2 para 1.5 em um pequeno applet em que trabalhei, muitas coisas quebrou:. Atualização da tela ficou toda wonky, elementos movido, etc

JRE da Sun não mantém compatibilidade com versões anteriores para tudo . Às vezes, quando os itens são reprovados, eles desaparecem completamente depois de um período muito curto de tempo.

Nós escrevemos tudo com "estoque" Java, usando bibliotecas da Sun, também.

Eu também vi vários aplicativo escrito em Java puro que funcionam bem em uma ou duas plataformas na mesma versão do JRE falhar em outros com essa versão (o trabalho do produto I com agora funciona muito bem no Windows, ok no Mac oS X, decente em Linux, mas falha no Solaris -. todos com o mesmo JRE)

Mover versões não é um passo simples, a menos que o aplicativo é muito pequeno.

A minha experiência é que a compatibilidade é bastante elevada. Eu só encontrei um aplicativo que nunca que eu não poderia começar a correr em uma versão atual. Por alguma razão (não ter fonte, então eu não cavar-lo) que um aplicativo não iria correr em outra coisa senão 1.4.2. Tudo o resto que eu já tratadas (alguns deles bastante considerável) ter vindo até 1,6 bem. Nenhuma modificação necessária.

YMMV é claro, então você vai ter que tentar e ver ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top