Pergunta

Eu quero porta algumas bibliotecas J2SE existentes (por exemplo libs Apache compressão) a ser usado para o desenvolvimento Blackberry, mas há um problema (e não apenas um).

Em primeiro lugar, a maioria das libs Java extensivamente usar coleções J2SE e tipos de dados que são normalmente ausentes em plataformas J2ME - mas isso é teoricamente graças solucionáveis ??para open-source implementações j2se api como Apache Harmony. O problema maior é que, ao que parece, Blackberry JDK é baseado em java 1.4, portanto, qualquer código que usa os genéricos e outros 1,5 características, como enumerações, não é sem esforço compilable no Blackberry.

O que levanta uma questão interessante de se existem quaisquer ferramentas ou projetos lá fora, que iria fazer conversão automática de 1.5-> 1.4, apoiando bytecode bastardized-J2ME existentes:)

Um projeto que eu era capaz de encontrar é Retroweaver , mas eu não estou muito certo como ativo que projeto é.

Eu tenho certeza que o problema da 1.5-> 1.4 conversão automática não é única - então alguém tem alguma experiência com ele

?
Foi útil?

Solução 4

Então, aqui está o que eu acabei fazendo até agora:. Declawer + algum código personalizado para a geração de classes de enumeração

A única coisa diferenciar sobre Declawer é que, embora seja muito simples e, francamente, um pouco de um truque (que depende de uma capacidade sem documentos de javac), sua saída é o código Java real em comparação com aumentada ou convertido bytecode Java . Isso é muito precioso para o desenvolvimento baseado em java móvel como, francamente, modificação bytecode / instrumentação não é nada tão desenvolvido para plataformas J2ME, como é para j2se, e há apenas há garantias de que as coisas estão indo para o trabalho fora da caixa do caminho eles fazem com j2se onde estas ferramentas já ter sido usado por muito poucos desenvolvedores.

A funcionalidade do Declawer é limitado (nenhum amor por 1,5 enums ou autoboxing), então eu tive que adicionar um script python para gerar automaticamente classes equivalentes em termos de funcionalidade para 1,5 enums de descritores simples. Esta geração acontece em tempo de compilação.

Este endereço minhas preocupações até agora, com a única exceção de encontrar um bom amigável-J2ME contêiner IoC para uso para meu aplicativo (uma vez que você tentar esses caras, é tão difícil desistir deles.)

Mas isso é uma discussão para um segmento diferente.

Outras dicas

Você já tentou Retrotranslator ? Eu li que ele faz um trabalho melhor do que Retroweaver.

O Aqui outra coisa eu encontrei aqui no estouro de pilha:

Compilando com o javac regular e segmentar um JVM mais velho lhe dará bytecode adequada para os genéricos, pelo menos

O que absolutamente faz sentido tentar.

Eu usei retroweaver no passado (J2SE, não J2ME) - que funcionou muito bem. O custo de usá-lo é um dependências casal tempo de execução extra.

Atualização 2013/01/28 : Depois de correr em problemas com RetroWeaver, eu comutada para RetroTranslator .

Eis mais duas ferramentas que eu encontrei (ligada a partir de página de Retrotranslator):

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