ไม่สามารถติดตั้ง Java 32 บิตบน Windows 7 64 บิต


1

ฉันกำลังดาวน์โหลดจาวาเวอร์ชั่น 32 บิตจาก Java.com http://java.com/en/download/manual.jsp . มันบันทึกเป็น

JRE-6u27-Windows-i586-S

แต่เมื่อฉันติดตั้ง มีการติดตั้งรุ่น 64 บิตแทน (??) . ไม่มี javaw.exe ในโฟลเดอร์ / System32 แต่มีอยู่ในโฟลเดอร์ SysWOW64

ฉันไม่เคยมีปัญหานี้มาก่อน จะทำอย่างไร? ฉันต้องการสิ่งนี้สำหรับโปรแกรม java 32 บิต


คุณจะได้อะไรเมื่อคุณไปที่ CMD และพิมพ์ java -version?
AndrejaKo

@AndrejaKo; ฉันต้องไปที่โฟลเดอร์ \ SysWOW64 จากนั้นจะแสดง (Java SE Runtime Environment build 1.6.0_27-b07) และ (Java Hotspot Client VM สร้าง 20.2-b06, โหมดผสม, การแชร์) และตามการทดสอบนี้: java.com/en/download/testjava.jsp มันบอกว่าสถาปัตยกรรม x86
bretddog

1
"ฉันต้องการสิ่งนี้สำหรับโปรแกรม Java แบบ 32 บิต" - ไม่มีสิ่งนั้น (เว้นแต่คุณจะใช้ JNI) "โปรแกรม Java ที่คอมไพล์แล้วสามารถทำงานบนเครื่องเสมือน Java แบบ 32 บิตหรือ 64 บิตโดยไม่มีการดัดแปลงความยาวและความแม่นยำของประเภทบิวด์อินทั้งหมดจะถูกระบุโดยมาตรฐานและไม่ขึ้นอยู่กับสถาปัตยกรรมพื้นฐาน - oracle.com/technetwork/java/... และ stackoverflow.com/questions/783662/...
RedGrittyBrick

@ แดง: แน่นอนว่ามีเหตุผล แม้ว่าฉันจะได้รับคำแนะนำให้ใช้รุ่น 32 บิตสำหรับโปรแกรมเฉพาะ แต่ฉันไม่ทราบว่ามีผลกระทบอะไรบ้าง แม้ว่าจะยังคงมีปัญหาที่ System32 / javaw.exe ไม่มีอยู่และด้วยเหตุนี้โปรแกรมที่อ้างถึงจึงไม่พบสิ่งใด
bretddog

คำตอบ:


3

นั่นคือสิ่งที่มันเป็น จากวิกิพีเดีย WOW64 หน้า:

ระบบปฏิบัติการใช้ไดเรกทอรี% SystemRoot% \ system32 สำหรับไลบรารี 64 บิตและไฟล์ปฏิบัติการ สิ่งนี้ถูกทำขึ้นด้วยเหตุผลด้านความเข้ากันได้แบบย้อนหลังเนื่องจากแอปพลิเคชันรุ่นเก่าจำนวนมากถูกฮาร์ดโค้ดเพื่อใช้เส้นทางนั้น เมื่อเรียกใช้แอปพลิเคชัน 32 บิต WoW64 จะเปลี่ยนเส้นทาง DLL 32 บิตไปยัง% SystemRoot% \ SysWOW64 ซึ่งมีไลบรารี 32 บิตและไฟล์ปฏิบัติการ โดยทั่วไปแอปพลิเคชัน 32 บิตไม่ทราบว่ากำลังใช้งานบนระบบปฏิบัติการ 64 บิต แอปพลิเคชัน 32 บิตสามารถเข้าถึง% SystemRoot% \ System32 ผ่านทางไดเรกทอรีหลอก% SystemRoot% \ sysnative


ขอบคุณที่ทำให้ชัดเจนขึ้น! แต่โปรแกรมที่อ้างถึง /System32/javaw.exe ในลิงก์เป้าหมายนั้นจะไม่สามารถเริ่มต้นได้ พฤติกรรมนี้ถูกต้องหรือไม่ ฉันไม่เห็นการเปลี่ยนเส้นทางเกิดขึ้น
bretddog

ฉันนำหน้าสิ่งนี้โดยบอกว่าฉันไม่รู้จัก Java ดี หากคุณติดตั้ง Java เวอร์ชัน 64 บิตดังนั้นควรรันอย่างถูกต้องเพราะจะอยู่ใน C: \ Windows \ System32 ยกเว้นว่าโค้ดจาวาเรียก DLLs 32- บิตมันควรจะรวบรวมและทำงานได้ดีในสภาพแวดล้อม 64- บิต
Hand-E-Food

นี่คือสิ่งแปลกที่ฉันบันทึกไว้ในคำถามของฉัน: ไม่มีไฟล์ java ใน / System32 แต่ฉันคิดว่าฉันได้ติดตั้ง 32 บิตอย่างน้อยตามการทดสอบที่นี่มันบอกว่า x86 java.com/en/download/testjava.jsp แต่ไฟล์ java อยู่ในโฟลเดอร์ SysWOW64
bretddog

ใช่. บนระบบปฏิบัติการ 64 บิต Java แบบ 32 บิตจะติดตั้งกับ \ SysWOW64 และ 64 บิต Java จะติดตั้งกับ \ System32 บนระบบปฏิบัติการ 32 บิต Java 32 บิตติดตั้งไปที่ \ System32 และ Java 64 บิตไม่ได้ติดตั้ง ใช้รุ่นที่เหมาะสมกับระบบปฏิบัติการและควรใช้งานได้สำหรับคุณ
Hand-E-Food

1

เหตุใด 64 บิต dll จะไปที่ System32 และ 32 บิต dll ที่ SysWoW64 บน Windows 64 บิต

ตามที่ฉันเข้าใจแล้วบนระบบ Windows 64 บิต System32 สงวนไว้สำหรับไบนารี 64 บิต ดังนั้นมันจะผิดที่จะใส่ไบนารี javaw.exe แบบ 32 บิตที่นั่น

โปรแกรมที่จำเป็นต้องเรียกใช้โปรแกรม Java ไม่ควรมีตำแหน่งของ javaw.exe ที่ฮาร์ดโค้ดลงในพวกเขาพวกเขาควรพึ่งพา PATH

วิธีการรันโปรแกรม Java จาก C #?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.