
Para el desarrollo normal, estoy usando la máquina virtual de 64 bits que viene cuando instalo el kit de desarrollo de Java (OpenJDK) con el administrador de paquetes.
Pero hay algunas aplicaciones Java (que contienen bibliotecas nativas, supongo) que no funcionan en una máquina virtual Java de 64 bits. (PareceJabón UIes uno de esos candidatos: en las versiones 4.0.1 y 4.5 beta 1, falla con una falla de segmentación si se ejecuta en una máquina virtual de 64 bits).
Intenté instalar la versión i386 de openjdk-6-jre además de la de 64 bits, pero aptitude lo rechaza (diciendo que entra en conflicto con la versión de 64 bits existente). Lo mismo sucede si intento instalar openjdk-jre-7 en la versión de 32 bits.
una respuesta a¿Puedo ejecutar una aplicación Java de 32 bits en un sistema de 64 bits?Se propuso instalar ia32-sun-java6-bin
, pero no hay ningún paquete con este nombre (ni nada con ia32
Java).
¿Qué podría hacer aquí para ejecutar SoapUI sin cambiar la instalación de Java de todo mi sistema a 32 bits?
Respuesta1
Es muy fácil tener instaladas varias versiones de Java. Algo más difícil (léase: tedioso) es cambiar entre versiones a nuestro antojo.
tldr
- apto-consigue uno
- descomprimir el otro
- exportar rutas dependiendo de cuál quieras
apt-obtener una versión
Decide qué versión utilizarás principalmente. O decide cuál quieres que tenga actualizaciones automáticas. O lanzar una moneda, lo que sea. Ni siquiera tienes que usar apt-get
; simplemente mantenga manualmente ambos paquetes en su sistema (consulte el siguiente encabezado).
El punto es: es más fácil usar el administrador de paquetes de Ubuntu para mantener exactamente una versión de un paquete como java. Tú te encargarás del resto.
descomprimir el otro
Descargue un tarball jdk. Extraerlo a /opt
.
cambiar entre ellos
Dejé que el administrador de paquetes manejara mi instalación principal. Exporto algunas variables para el otro cuando lo necesito. Trabajo mucho en la línea de comando, por lo que es una buena solución para mí. Me molesto con:
export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH
Además, hago enlaces simbólicos jdk/
-> jdk1.6.0_3/
porque soy vago y no me gusta reconfigurar mi .bashrc y otros scripts en cada actualización incremental de jdk.
Variables de entorno que podrían interesarle:
JAVA_LIBDIR
JNI_LIBDIR
JAVAJNI_LIBDIR
JVM_ROOT
JAVA_HOME
PATH
Respuesta2
Instalación
Primero,descargarel último JDK de 32 bits (no JRE) de Sun. En ese momento, esto era jdk-6u7-linux-i586.bin para mí.
Instale el paquete java:
sudo apt-get install java-package
Ahora use java-package para crear un paquete .deb a partir del binario que descargó. Tienes que engañarlo para que construya el paquete de 32 bits:
DEB_BUILD_GNU_TYPE=i486-linux-gnu DEB_BUILD_ARCH=i386 fakeroot make-jpkg jdk-6u7-linux-i586.bin
Esto debería generar un paquete .deb. Por alguna razón, el nombre del paquete tiene el sufijo _amd64. Instale el paquete:
sudo dpkg -i sun-j2sdk1.6_1.6.0+update7_amd64.deb
Utilice alternativas de actualización para seleccionar el nuevo JDK. Se instaló en /usr/lib/j2sdk1.6-sun para mí.
sudo update-alternatives --config java
Si ejecuta java -version debería ver la versión correcta:
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
Tuve que reinstalar la versión de 32 bits de Eclipse (ya que SWT contiene código nativo). También tuve que eliminar mi directorio ~/.eclipse o Eclipse no se iniciaba (esto requiere reinstalar nuevas versiones de cualquier complemento). Finalmente, agregue el nuevo JRE en Java->JRE instalados usando la ubicación de instalación (/usr/lib/j2sdk1.6-sun) y selecciónelo como predeterminado.
Respuesta3
O solo puedes instalar ia32-libs
apt-get install ia32-libs
descomprime el x86 jre
http://javadl.sun.com/webapps/download/AutoDL?BundleId=63983
y agréguelo a PATH si lo desea.