tldr

tldr

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

Mas existem alguns aplicativos Java (contendo bibliotecas nativas, suponho) que não funcionam em Java VM de 64 bits. (PareceSoapUIé um candidato - nas versões 4.0.1 e 4.5 beta 1, ele falha com uma falha de segmentação se for executado em uma VM de 64 bits.)

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

Uma resposta paraPosso executar um aplicativo Java de 32 bits em um sistema de 64 bits?propôs instalar ia32-sun-java6-bin, mas não existe nenhum pacote com esse nome (ou qualquer coisa com ia32e Java).

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

Responder1

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

tldr

  1. apt-get um
  2. descompacte o outro
  3. exportar caminhos dependendo de qual você deseja

apt-get uma versão

Decida qual versão você usará principalmente. Ou decida qual você deseja que tenha atualizações automáticas. Ou jogue uma moeda, tanto faz. Você nem precisa usar apt-get; apenas mantenha ambos os pacotes manualmente em seu sistema (veja o próximo título).

A questão é: é 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

Baixe um tarball jdk. Extraia-o para /opt.

alternar entre eles

Deixei o gerenciador de pacotes cuidar da minha instalação primária. Exporto alguns vars para o outro quando preciso. Eu trabalho muito na linha de comando, então é uma boa solução para mim. Eu me incomodo com:

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

Além disso, faço link simbólico 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 importar:

JAVA_LIBDIR
JNI_LIBDIR
JAVAJNI_LIBDIR
JVM_ROOT
JAVA_HOME
PATH

Responder2

Instalação

Primeiro,downloado mais recente JDK de 32 bits (não JRE) da Sun. Na época, este 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ê precisa enganá-lo para criar o 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 possui 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. Foi instalado em /usr/lib/j2sdk1.6-sun para mim.

sudo update-alternatives --config java 

Se você executar java -version você 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

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 iniciaria (isso requer a reinstalação de novas versões de quaisquer plug-ins). Por fim, adicione o novo JRE em Java-> JREs instalados usando o local de instalação (/usr/lib/j2sdk1.6-sun) e selecione-o como padrão.

referência

Responder3

Ou você só pode instalar ia32-libs

 apt-get install ia32-libs

descompacte o x86 jre

http://javadl.sun.com/webapps/download/AutoDL?BundleId=63983

e adicione ao PATH se desejar.

informação relacionada