Pesquisa personalizada

2005/04/27

IBM J9 VM: "Impossível carregar jclfoun10_22"

Recentemente eu fiz o download da versão trial do WSDD - Websphere Studio Device Developer - para brincar um pouco programando para meu PocketPC. Ao instalar a JVM em meu Pocket, eu fui surpreendido com um erro chato que empedia o J9 de rodar adequadamente. Relato a seguir o problema que tive e sua solução.

O WSDD vem com o WEME - WebSphere Everyplace Micro Environment - que basicamente contém uma coleção de JVMs. São diversas JVMs para diversos tipos de handhelds, de Palm Tops a telefones celulares, todas acompanhando o WEME.

J9 com o problema da DLL.
J9 funcionando.

Para meu Pocket PC, um HP iPAQ h5550 com o Windows Mobile 2003, há duas diferentes implementações diferentes de JVMs e suas respectivas bibliotecas: MIDP 2.0 (CLDC) e Personal Profiler 1.0 (CDC). Eu instalei as duas, mas somente a primeira funcionou de imediato. Para que a segunda funcionasse adequadamente, eu tive que ralar um pouco até descobrir o problema.

O problema ocorria quando tentava executar o \Arquivos de programas\J9\PPRO10\bin\j9.exe em meu PocketPC. Este é o arquivo o que fornece acesso a JVM J9. A mensagem de erro era:

(W)J9VM0011 Impossível carregar jclfoun10_22: Não foi possível localizar o módulo especificado.

(E)EXEX0013 Erro interno de VM: Falha ao criar Java VM

(I)EXEX0014 Executar \Arquivos de programas\J9\PPRO10\bin\j9.exe -help para uso
Veja que o J9 reclama da DLL jclfoun10_22. Eu procurei essa DLL e não encontrei no pacote de instalação do J9. No entanto, ao navegar no diretório PPRO10\bin que está dentro do diretório de instalação do J9 no PocketPC, eu localizei um arquivo que tem nome semelhante ao reclamado. Se trata do jclppro10_22.dll. O que em seguida eu fiz, foi renomear este arquivo para jclfoun10_22.dll e para minha felicidade funcionou!
Então se você também estiver passando por este problema, tente renomear esse arquivo.

Após ter escrito a primeira versão desse texto (que se passa acima), verifiquei no guia de instalação do J9 PP, que há um parâmetro que pode ser passado para o J9 via linha de comando. É o parâmetro -jcl:[config] que especifica qual DLL JCL será utilizada (qual JNI nativa será utilizada pelo código Java de biblioteca de classe). Abaixo reproduzo trecho do próprio guia que trata do parâmetro:

Se você utilizar o -jcl:<config> sem indicar um -Xbootclasspath: <caminho>, então o valor para o -Xbootclasspath: <caminho> será assumido (%JAVAHOME%/lib/jclLibraryName/classes.zip). No entanto, se as bibliotecas de classe forem armazenadas em um local que não seja padrão, você deverá incluir o -Xbootclasspath: <caminho> para direcionar a VM para o arquivo classes.zip.

Nota: Se o -Xbootclasspath e as opções -jcl da VM forem incompatíveis, a VM gerará um erro "Biblioteca de classe incompatível".

Os argumentos possíveis de biblioteca são:

  • -jcl:foun10 (biblioteca de classe jclFoundation10)
  • -jcl:ppro10 (biblioteca de classe jclPPro10)
  • -jcl:midp20 (biblioteca de classe jclMidp2.0)
  • -jcl:max (biblioteca de classe jclMax)
  • -jcl:rm (biblioteca de classe jclRM)

Nota: Nem todas estas opções estão disponíveis para todas as plataformas.

Labels: ,

0 Comments:

Post a Comment

<< Home