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. (Parece que SoapUI es un candidato de este tipo: en la versión 4.0.1 y 4.5 beta 1, falla con una falla de segmentación si se ejecuta en una VM de 64 bits).
Traté de instalar la versión i386 de openjdk-6-jre además de la de 64 bits, pero esto es rechazado por aptitude (diciendo que está 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 que se propone instalar ia32-sun-java6-bin
, pero no hay un paquete con este nombre (ni nada con ia32
Java).
¿Qué podría hacer aquí para ejecutar SoapUI sin cambiar todo el sistema de instalación de Java a 32 bits?
Respuestas:
Es muy fácil tener instaladas varias versiones de Java. Algo más difícil (léase: tedioso) es cambiar entre versiones a su antojo.
tldr
apt-get one version
Decide qué versión usarás principalmente. O decida cuál desea tener actualizaciones automáticas. O lanzar una moneda, lo que sea. Ni siquiera tiene que usar
apt-get
; solo mantenga manualmente ambos paquetes en su sistema (vea 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. Te encargarás del resto.
deshacer el otro
Descargue un tarball jdk. Extraerlo a
/opt
.cambiar entre ellos
Dejo que el administrador de paquetes maneje mi instalación principal. Exporto algunos vars para el otro cuando lo necesito. Trabajo mucho en la línea de comandos, por lo que es una buena solución para mí. Me molesto con:
Además, hago un enlace simbólico
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 pueden interesarle:
fuente
.deb
la otra arquitectura en lugar del tarball?Instalación
Primero, descargue el último JDK de 32 bits (no JRE) de Sun. En el momento esto era jdk-6u7-linux-i586.bin para mí.
Instalar java-package:
Ahora use java-package para construir un paquete .deb desde el binario que descargó. Tienes que engañarlo para construir el paquete de 32 bits:
Esto debería generar un paquete .deb. Por alguna razón, el nombre del paquete tiene el sufijo _amd64. Instala el paquete:
Utilice las alternativas de actualización para seleccionar el nuevo JDK. Fue instalado en /usr/lib/j2sdk1.6-sun para mí.
Si ejecuta java -version, debería ver la versión correcta:
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 iniciaría (esto requiere reinstalar nuevas versiones de cualquier complemento). Finalmente, agregue el nuevo JRE en Java-> JRE instalados utilizando la ubicación de instalación (/usr/lib/j2sdk1.6-sun) y selecciónelo como predeterminado.
árbitro
fuente
O solo puede instalar ia32-libs
descomprimir el x86 jre
http://javadl.sun.com/webapps/download/AutoDL?BundleId=63983
y agregue a PATH si lo desea.
fuente
ia32-libs
no es el método recomendado en ubuntu-11.10 en adelante. askubuntu.com/questions/107230/…