Чи можу я встановити 32-бітну Java на додаток до 64-бітної версії?


14

Для нормальної розробки я використовую 64-бітний VM, який приходить, коли я встановлюю комплект розробки Java (OpenJDK) разом із менеджером пакунків.

Але є деякі додатки Java (містять рідні бібліотеки, я думаю), які не працюють на 64-бітній Java VM. (Схоже, SoapUI є таким кандидатом - у версіях 4.0.1 та 4.5 бета-1 він не працює з помилкою сегментації, якщо працює у 64-бітовій машині.)

Я спробував встановити i386-версію openjdk-6-jre на додаток до 64-розрядної, але це відмовлено у придатності (мовляв, це суперечить існуючій 64-розрядної версії). Те саме відбувається, якщо я спробую встановити openjdk-jre-7 у 32-бітній версії.

Відповідь на те, чи можу я запустити 32-бітний додаток Java в 64-бітовій системі, запропонованій для встановлення ia32-sun-java6-bin, але немає пакету з цим ім'ям (або що-небудь з ia32і Java).

Що я можу зробити тут, щоб запустити SoapUI, не перемикаючи всю свою Java-установку на 32 біт?


Мені реально вдалося запустити soapUI з 64-розрядною версією, відредагувавши скрипт оболонки, щоб передати якийсь інший параметр. Мені доведеться шукати, що саме я зробив.
Paŭlo Ebermann

Див. Askubuntu.com/questions/111947/… щодо встановлення 64-бітної та 32-бітової Java з сховищ. Ви також можете змінити за замовчуванням.
user68186

Відповіді:


4

Супер легко встановити кілька версій Java. Дещо важче (читати: нудно) перемикання між версіями на примху.

tldr

  1. вдало - дістати
  2. untar інший
  3. шляхи експорту залежно від того, який ви бажаєте

apt - отримати одну версію

Вирішіть, яку версію ви в основному використовуєте. Або вирішіть, яке саме з них потрібно мати автоматичне оновлення. Або перекиньте монету, що завгодно. Вам навіть не доведеться користуватися apt-get; просто вручну підтримуйте обидва пакети у вашій системі (див. наступний заголовок).

Справа в тому, що простіше використовувати менеджер пакунків Ubuntu для підтримки саме такої версії пакета, як java. Ти подбаєш про інше.

untar інший

Завантажте jdk tarball. Витягніть його /opt.

перемикатися між ними

Я дозволяю менеджеру пакунків управляти моєю основною установкою. Я експортую деякі вари для іншого, коли мені це потрібно. Я багато працюю над командним рядком, тому для мене це нормальне рішення. Я турбуюся:

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

Крім того, я є посиланням jdk/-> jdk1.6.0_3/тому що я лінивий і мені не подобається перенастроювати .bashrc та інші сценарії кожного покрокового оновлення jdk.

Змінні середовища, які можуть вас хвилювати:

JAVA_LIBDIR
JNI_LIBDIR
JAVAJNI_LIBDIR
JVM_ROOT
JAVA_HOME
PATH

Не могли б ви так само добре отримати .debіншу архітектуру замість тарболу?
0xC0000022L

@ 0xC0000022L Ідея полягає в тому, щоб ви містили кожну версію у власному каталозі. Якщо ви можете це зробити з дебю, чудово!
djeikyb

2

Установка

Спочатку завантажте останню 32-бітну JDK (не JRE) від Sun. На той час це було для мене jdk-6u7-linux-i586.bin.

Встановіть java-пакет:

sudo apt-get install java-package 

Тепер використовуйте java-пакет для створення пакету .deb з завантаженого файлу. Ви повинні ввести це в створення 32-бітного пакету:

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

Це повинно генерувати пакет .deb. Чомусь назва пакета має суфікс _amd64. Встановіть пакет:

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

Використовуйте альтернативи оновлення для вибору нового JDK. Він був встановлений на /usr/lib/j2sdk1.6-sun для мене.

sudo update-alternatives --config java 

Якщо ви запускаєте java -version, ви повинні побачити правильну версію:

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)

32-бітове затемнення

Мені довелося перевстановити 32-бітну версію Eclipse (оскільки SWT містить власний код). Я також повинен був видалити свою каталог ~ / .eclipse або Eclipse не запускався (це вимагає перевстановлення нових версій будь-яких плагінів). Нарешті, додайте новий JRE у Java-> Встановлені JRE, використовуючи місце встановлення (/usr/lib/j2sdk1.6-sun) та виберіть його як стандартний.

реф


Дякую, я спробую це ... хоча я не хочу, щоб 32-розрядний за замовчуванням був, використовуйте його лише для кількох програм, які не працюють з 64-бітними.
Paŭlo Ebermann

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.