
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 ia32
e 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
- apt-get um
- descompacte o outro
- 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.
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.