Posso instalar um Java de 32 bits além de uma versão de 64 bits?

14

Para desenvolvimento normal, estou usando a VM de 64 bits, que vem quando eu instalo o kit de desenvolvimento Java (OpenJDK) com o gerenciador de pacotes.

Mas há alguns aplicativos Java (contendo bibliotecas nativas, suponho) que não funcionam em uma VM Java de 64 bits. (Parece que o SoapUI é um candidato - na versão 4.0.1 e 4.5 beta 1, ele falha com uma falha de segmentação se executado em um VM de 64 bits.)

Eu tentei instalar a versão i386 do openjdk-6-jre, além da versão de 64 bits, mas isso é recusado pelo aptitude (dizendo que ela entra em conflito com a versão de 64 bits existente). O mesmo acontece se eu tentar instalar o openjdk-jre-7 na versão de 32 bits.

Uma resposta para Posso executar um aplicativo Java de 32 bits em um sistema de 64 bits proposto para instalar ia32-sun-java6-bin , mas não há nenhum pacote com esse nome (ou qualquer coisa com ia32 e Java).

O que eu poderia fazer aqui para executar o SoapUI sem mudar toda a instalação do Java do sistema para 32 bits?

    
por Paŭlo Ebermann 07.03.2012 / 16:15

3 respostas

4

É muito fácil ter várias versões do Java instaladas. Um pouco mais difícil (leia-se: tedioso) é alternar entre as versões por capricho.

tldr

  1. apt-get one
  2. descompacte o outro
  3. caminhos de exportação dependendo de qual deles você deseja

apt-get uma versão

Decida qual versão você mais usará. Ou decida qual deles você deseja ter atualizações automáticas. Ou jogue uma moeda, seja qual for. Você nem precisa usar apt-get ; apenas mantenha manualmente ambos os pacotes em seu sistema (veja o próximo cabeçalho).

O ponto é: é mais fácil usar o gerenciador de pacotes do Ubuntu para manter exatamente uma versão de um pacote como o java. Você vai cuidar do resto.

descompacte o outro

Faça o download de um tarball jdk. Extraia para /opt .

alternar entre eles

Eu deixo o gerenciador de pacotes cuidar da minha instalação primária. Eu exporto alguns vars para o outro quando eu precisar dele. Eu trabalho muito na linha de comando, então é uma boa solução para mim. Eu me preocupo com:

export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH

Além disso, eu symlink jdk/ - > jdk1.6.0_3/ porque sou preguiçoso e não gosto de reconfigurar meu .bashrc e outros scripts a cada atualização incremental do jdk.

Variáveis de ambiente com as quais você pode se preocupar:

JAVA_LIBDIR
JNI_LIBDIR
JAVAJNI_LIBDIR
JVM_ROOT
JAVA_HOME
PATH
    
por djeikyb 18.06.2012 / 17:59
2

Instalação

Primeiro, faça o download do JDK de 32 bits mais recente (não JRE) da Sun. Na época, isso era jdk-6u7-linux-i586.bin para mim.

Instale o pacote java:

sudo apt-get install java-package 

Agora, use java-package para construir um pacote .deb a partir do binário que você baixou. Você tem que enganar na construção do pacote de 32 bits:

DEB_BUILD_GNU_TYPE=i486-linux-gnu DEB_BUILD_ARCH=i386 fakeroot make-jpkg jdk-6u7-linux-i586.bin 

Isso deve gerar um pacote .deb. Por algum motivo, o nome do pacote tem o sufixo _amd64. Instale o pacote:

sudo dpkg -i sun-j2sdk1.6_1.6.0+update7_amd64.deb 

Use update-alternatives para selecionar o novo JDK. Ele foi instalado em /usr/lib/j2sdk1.6-sun para mim.

sudo update-alternatives --config java 

Se você executar o java -version, deverá ver a versão correta:

java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Server VM (build 10.0-b23, mixed mode)

Eclipse de 32 bits

Eu tive que reinstalar a versão de 32 bits do Eclipse (já que o SWT contém código nativo). Eu também tive que excluir meu diretório ~ / .eclipse ou o Eclipse não iniciava (isso requer a reinstalação de novas versões de qualquer plug-in). Por fim, inclua o novo JRE em Java- > Installed JREs usando o local de instalação (/usr/lib/j2sdk1.6-sun) e selecione-o como padrão.

ref

    
por Ringtail 07.03.2012 / 17:15
1

Ou você só pode instalar o ia32-libs

 apt-get install ia32-libs

descompacte o x86 jre

link

e adicione ao PATH se você quiser.

    
por MaikoID 21.02.2013 / 03:14