ฉันสามารถติดตั้ง Java แบบ 32 บิตเพิ่มเติมจากรุ่น 64 บิตได้หรือไม่


14

สำหรับการพัฒนาปกติฉันใช้ VM 64 บิตซึ่งมาเมื่อฉันติดตั้ง Java development kit (OpenJDK) กับตัวจัดการแพ็คเกจ

แต่มีบางแอปพลิเคชั่น Java (ที่มี native library, ฉันคิดว่า) ซึ่งไม่ทำงานบน Java VM 64 บิต (ดูเหมือนว่าSoapUIเป็นตัวเลือกตัวเลือก - ในเวอร์ชัน 4.0.1 และ 4.5 ​​เบต้า 1 มันล้มเหลวโดยมีข้อผิดพลาดการแบ่งกลุ่มหากทำงานใน VM 64 บิต)

ฉันพยายามติดตั้ง openjdk-6-jre รุ่น i386 นอกเหนือจาก 64- บิตหนึ่ง แต่มันถูกปฏิเสธด้วยความถนัด (บอกว่ามันขัดแย้งกับเวอร์ชั่น 64 บิตที่มีอยู่) สิ่งเดียวกันจะเกิดขึ้นหากฉันพยายามติดตั้ง openjdk-jre-7 ในรุ่น 32 บิต

คำตอบสำหรับฉันฉันสามารถเรียกใช้แอปพลิเคชัน Java 32 บิตบนระบบ 64 บิตที่เสนอให้ติดตั้งia32-sun-java6-binได้ แต่ไม่มีแพ็คเกจที่มีชื่อนี้ (หรืออะไรก็ตามที่มีia32และ Java)

ฉันจะทำอย่างไรที่นี่เพื่อเรียกใช้ SoapUI โดยไม่เปลี่ยนการติดตั้ง Java ทั้งระบบเป็น 32 บิต


ฉันพยายามที่จะรัน soapUI ด้วยเวอร์ชัน 64 บิตโดยการแก้ไขเชลล์สคริปต์เพื่อส่งผ่านพารามิเตอร์ที่แตกต่างกัน ฉันจะต้องค้นหาสิ่งที่ฉันทำ
Paŭlo Ebermann

ดูaskubuntu.com/questions/111947/…สำหรับการติดตั้งจาวาทั้ง 64 บิตและ 32 บิตจากที่เก็บ คุณสามารถเปลี่ยนค่าเริ่มต้นได้เช่นกัน
user68186

คำตอบ:


4

ง่ายมากที่จะติดตั้ง Java หลายเวอร์ชัน ค่อนข้างยาก (อ่าน: น่าเบื่อ) กำลังสลับระหว่างเวอร์ชันต่าง ๆ ด้วยความตั้งใจ

TLDR

  1. ฉลาด - รับหนึ่ง
  2. untar อื่น ๆ
  3. เส้นทางการส่งออกขึ้นอยู่กับที่คุณต้องการ

apt-get one version

เลือกเวอร์ชันที่คุณต้องการใช้เป็นส่วนใหญ่ หรือตัดสินใจว่าคุณต้องการอัปเดตอัตโนมัติใด หรือพลิกเหรียญอะไรก็ตาม คุณไม่ได้มีการใช้apt-get; เพียงรักษาแพคเกจทั้งสองด้วยตนเองในระบบของคุณ

ประเด็นคือ: มันง่ายกว่าที่จะใช้ตัวจัดการแพ็คเกจของ Ubuntu เพื่อรักษาแพคเกจหนึ่งเวอร์ชันอย่าง java อย่างแน่นอน คุณจะดูแลส่วนที่เหลือ

untar อื่น ๆ

ดาวน์โหลด tarball jdk /optแยกไป

สลับไปมาระหว่างพวกเขา

ฉันให้ผู้จัดการแพคเกจจัดการกับการติดตั้งหลักของฉัน ฉันส่งออก vars ไปอีกอันหนึ่งเมื่อฉันต้องการ ฉันทำงานบนบรรทัดคำสั่งจำนวนมากดังนั้นมันจึงเป็นทางออกที่ดีสำหรับฉัน ฉันรำคาญกับ:

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

นอกจากนี้ฉัน symlink jdk/-> jdk1.6.0_3/เพราะฉันขี้เกียจและไม่ต้องการกำหนดค่า. bashrc และสคริปต์อื่น ๆ ของฉันทุกครั้งที่อัพเกรด jdk ที่เพิ่มขึ้น

ตัวแปรสภาวะแวดล้อมที่คุณอาจสนใจ:

JAVA_LIBDIR
JNI_LIBDIR
JAVAJNI_LIBDIR
JVM_ROOT
JAVA_HOME
PATH

คุณไม่สามารถรับ.debสถาปัตยกรรมอื่นแทน tarball ได้หรือไม่
0xC0000022L

@ 0xC0000022L แนวคิดคือคุณมีแต่ละเวอร์ชันไว้ในไดเรกทอรีของตัวเอง หากคุณสามารถทำสิ่งนั้นได้ด้วย deb ดีมาก!
djeikyb

2

การติดตั้ง

ก่อนอื่นดาวน์โหลด JDK 32 บิตล่าสุด (ไม่ใช่ JRE) จาก Sun ตอนนี้เป็น jdk-6u7-linux-i586.bin สำหรับฉัน

ติดตั้ง java-package:

sudo apt-get install java-package 

ตอนนี้ใช้ java-package เพื่อสร้างแพ็คเกจ. 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)

Eclipse 32 บิต

ฉันต้องติดตั้ง Eclipse เวอร์ชัน 32 บิตอีกครั้ง (เนื่องจาก SWT มีรหัสเนทีฟ) ฉันต้องลบไดเรกทอรี ~ / .eclipse ของฉันหรือ Eclipse จะไม่เริ่มต้น (สิ่งนี้ต้องติดตั้งปลั๊กอินใหม่ทุกเวอร์ชัน) สุดท้ายเพิ่ม JRE ใหม่ใน Java-> JRE ที่ติดตั้งโดยใช้ตำแหน่งการติดตั้ง (/usr/lib/j2sdk1.6-sun) และเลือกเป็นค่าเริ่มต้น

อ้าง


ขอบคุณฉันจะลองทำสิ่งนี้ ... แม้ว่าฉันไม่ต้องการให้เป็นแบบ 32 บิตเป็นค่าเริ่มต้นให้ใช้กับโปรแกรมบางตัวที่ไม่ทำงานกับ 64 บิตเท่านั้น
Paŭlo Ebermann

1

หรือคุณสามารถติดตั้ง ia32-libs เท่านั้น

 apt-get install ia32-libs

เปิดเครื่องรูด x86 jre

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

และเพิ่มใน PATH หากคุณต้องการ


2
การติดตั้งia32-libsไม่ใช่วิธีที่แนะนำสำหรับ ubuntu-11.10 เป็นต้นไป askubuntu.com/questions/107230/…
m-ric
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.