เปิดบันเดิลแอปพลิเคชัน Java. app ด้วยการดับเบิลคลิกบน Mac โดยไม่มี Java 6 ของ Apple


2

กล่าวโดยย่อ: ใน mac ที่มีการติดตั้ง Yosemite ให้สะอาดดับเบิลคลิกที่แอปพลิเคชัน Java. ที่รวบรวมสไตล์แอปพลิเคชัน Java mac ไม่สามารถเรียกใช้แอปได้เว้นแต่ว่าติดตั้ง Java 6 ของ Apple แม้ว่า Java เวอร์ชันปัจจุบันสำหรับ Java จาก Mac การติดตั้ง

ที่ความยาว: เมื่อ Apple พัฒนา Java SDK สำหรับ macosx คุณสามารถเปิดชุดแอปพลิเคชันสไตล์. แอป mac ที่เขียนใน Java โดยดับเบิลคลิกที่ไอคอนใน Finder ไอคอนแอปจะปรากฏขึ้นที่ท่าเรือขณะที่มันกำลังทำงาน รายการจะปรากฏในแถบเมนู Mac OS แอพ Java ทำตัวเหมือนแอพ Mac ทั่วไป

ในทางกลับกันถ้าคุณติดตั้ง Java SDK ปัจจุบันจาก Oracle คุณสามารถรันแอปพลิเคชัน Java ด้วย java -jar YourApp.app/Contents/Resources/Java/yourapp.jarแต่คุณจะได้รับไอคอน dock ทั่วไปรายการเมนูของคุณจะอยู่ด้านบนของหน้าต่างแทนแถบเมนู

และหากคุณไม่มี Java 6 จาก Apple ติดตั้งบนเครื่องซึ่งไม่รวมอยู่ในระบบปฏิบัติการรุ่นล่าสุด แต่ยังสามารถดาวน์โหลดได้จาก Apple ที่ สถานที่นี้ (แต่มันค่อนข้างล้าสมัย ณ จุดนี้) จากนั้นคุณจะได้รับข้อความแสดงข้อผิดพลาด: "ในการเปิด YourApp.app คุณต้องติดตั้ง Java SE 6 แบบดั้งเดิม" พร้อมลิงก์ไปยังการใช้งานที่ล้าสมัยของ Apple แม้ว่าคุณจะติดตั้ง Java 8 ของ Oracle แล้ว

บน Mac ที่ติดตั้ง Java 8 จาก Oracle แต่ไม่ใช่ Java 6 จาก Apple จะมีวิธีเปิดแอป Java จากตัวค้นหาหรือรักษาความเข้ากันได้ของแพลตฟอร์มดั้งเดิมอื่น ๆ มีวิธีบังคับให้กลุ่ม. app ใช้การติดตั้ง Java ที่คุณต้องการหรือไม่

ฉันโดยทั่วไปถามคำถามเดียวกันกับ ในการเปิด“ Eclipse” คุณต้องติดตั้งรันไทม์ Java SE 6 ดั้งเดิม . มีวิธีแก้ไขปัญหานี้นอกเหนือจากการติดตั้ง Java 6 ดั้งเดิมหรือไม่

คำถามนี้อาจเกี่ยวข้องด้วย: แอปพลิเคชันใช้ Java 6 จาก Apple แทนที่จะเป็น Java 7 จาก Oracle บน Mac OS X หรือไม่

ตามคำถาม เรียกใช้ Java ที่รวมอยู่ใน. app จากบรรทัดคำสั่ง และ ทำไม Java SE 6 Legacy จึงจำเป็นต้องเปิด Intellij ขอแนะนำให้คุณสามารถบังคับชุด Java .app ของคุณให้ใช้ Java เวอร์ชันที่ใหม่กว่าหากคุณเปลี่ยน JVMVersion ใน YourApp.app/Contents/Info.plist คำตอบเหล่านั้นมาจากยุค Java 1.7 อาจจะล้าสมัยหรือไม่

คำตอบ:


1

จากการตอบคำถามที่ฉันถามในรายการ java-dev ของ Apple มันจะปรากฏว่าบน Mac ที่มี Java 8 จาก Oracle ติดตั้ง แต่ไม่ใช่ Java 6 จาก Apple ไม่มีวิธีการเปิดบันเดิลของ Java application ที่สร้างขึ้นโดยใช้ เทคโนโลยีบันเดิลเครื่อง Bundler แบบเก่าของตัวเอง ฉันสงสัยว่านี่เป็นเพราะ JavaApplicationStub เขียนขึ้นเพื่อคาดหวังบางแง่มุมของ Apple Java ที่ไม่ปรากฏใน Java ของ Oracle

จากมุมมองของผู้ใช้สิ่งเดียวที่ต้องทำดูเหมือนจะเป็นการดาวน์โหลดและติดตั้ง Java 6 จาก https://support.apple.com/kb/DL1572 ในขณะที่ยังคงมีอยู่

จากมุมมองของนักพัฒนาการวางเดิมพันที่ปลอดภัยที่สุดคือการฝังจาวาไว้ในชุดแอพพลิเคชันของตัวเองโดยใช้เครื่องมือเช่น jwrapper หรืออาจมีเครื่องมือสำหรับสร้างบันเดิลที่จะทำงานกับ Java 8+ ของ Oracle


ฉันกำลังพูดถึงชุดแอปพลิเคชันสไตล์. app mac ไม่ใช่ไฟล์ jar ฉันได้แก้ไขคำถามเพื่อให้ชัดเจนยิ่งขึ้น
ziggurism

ฉันแก้ไขคำตอบของฉันแล้ว ฉันไม่คิดว่าคำถามของคุณเหมือนกับที่ต้องการให้ Java 6 เรียกใช้ Eclipse บน Yosemite เนื่องจากฉันไม่ทำเช่นนั้นฉันจึงเพิกเฉยต่อสิ่งนั้น (แม้ว่าอาจเป็นจริงสำหรับ Eclipse รุ่นเก่า) อย่างไรก็ตามฉันจะดูคำถามนั้นแยกต่างหาก
David

โครงสร้าง Motivator ไม่ทำงานบน Mac ของฉัน เช่นเดียวกับแอป Java ทั้งหมดมันทำให้ฉันมีข้อผิดพลาดขอ Java 6 Screengrab ที่นี่: imgur.com/T1xrpoX . ไฟล์ jar ภายใน. app bundle และไฟล์ jar Unix ทั้งคู่ทำงานได้ดีบนเครื่องของฉันผ่านตัวเรียกใช้ Jar
ziggurism

เป็น Macbook pro ที่ใช้ Yosemite 10.10.3 มีการติดตั้ง Java JDK 1.8 update 45 แต่ไม่เคยมี Java 6 จาก Apple ซึ่งน่าจะเป็นรุ่นเดียวที่อนุญาตให้ดับเบิลคลิก ฉันมีปัญหาเดียวกันกับ Mac เครื่องอื่นไม่ว่าจะเป็นรุ่นใหม่หรืออัปเกรดจาก pre-Yosemite คุณแน่ใจนะว่าคุณ อย่า ติดตั้ง Java 6 ของ Apple หรือไม่
ziggurism

ความคิดเห็นสำหรับคนอื่น: การคลิกสองครั้งที่ไฟล์ jar จะไม่สามารถเรียกใช้แอป Java ผ่านตัวเรียกใช้งาน Jar ได้จริงเนื่องจากไม่ได้ลงนาม คุณต้องคลิกขวาและเลือก "เปิด" จากเมนูตามบริบทเพื่อบายพาส Gatekeeper อาจใช้กับบันเดิล. app ด้วยหากคุณมี Java เวอร์ชันที่จะรัน
ziggurism
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.