Posso executar um aplicativo Java de 32 bits em uma plataforma de 64 bits?

3

Eu tenho um aplicativo Java antigo que foi compilado para a plataforma de 32 bits. Eu mudei do Windows XP (32 bits) para o OS X Snow Leopard (64 bits) e gostaria de continuar usando este aplicativo, no entanto estou recebendo uma exceção ao longo das linhas de:

Exception in thread "main" java.lang.UnsatisfiedLinkError: 
/Applications/TheApp/lib/libswt-pi-carbon-3139.jnilib:  no suitable image found.
Did find:
/Applications/TheApp/lib/libswt-pi-carbon-3139.jnilib: mach-o, but wrong 
architecture

Eu tentei usar a opção -d32 ao executar o aplicativo na linha de comando, mas sem sorte.

É possível executar este aplicativo de 32 bits em uma plataforma de 64 bits sem precisar recompilar ou usar uma VM?

Editar:

Eu não tenho a fonte original para este aplicativo e não estou muito familiarizado com o desenvolvimento em Java. Se houver uma ferramenta que eu possa usar para "up-compilar" (?) Para 64 bits, isso seria útil!

    
por Phillip B Oldham 16.01.2012 / 12:46

1 resposta

3

O Java foi projetado para fazer esse tipo de coisa de forma transparente. Já ouviu o slogan Compilar uma vez, rodar em qualquer lugar ? Bem, é relevante aqui: Compile uma vez, debugar em qualquer lugar .

O problema que você está vendo é porque a GUI é específica do Windows. A exceção que você vê confirma isso. Em geral, qualquer coisa que use SWT ou AWT não funcionará corretamente em uma plataforma diferente, a menos que seja tomado cuidado para garantir que isso aconteça.

Para encurtar a história, você está sem sorte. É claro que você poderia usar JD para extrair a fonte e modificar o código da GUI para rodar corretamente no OSX. Infelizmente, isso exigiria alguma experiência com Java.

    
por 07.11.2012 / 21:50