ฉันจะเรียกใช้ซอฟต์แวร์ Java ได้อย่างไร


35

วิธีที่ดีที่สุดในการรันโค้ด Java บน RP คืออะไร? การติดตั้ง OpenJDK จาก repos ของ Debian / Fedora นั้นใช้ได้ไหม มีการปรับแต่งอย่างใดอย่างหนึ่งที่ควรใช้สำหรับการปรับปรุงประสิทธิภาพ? นอกจากนี้ยังมี JVM "น้ำหนักเบา" สำหรับ RP ที่ทำงานได้ดีกว่า / เร็วกว่า JVM มาตรฐานจาก OpenJDK หรือไม่ ถ้าเป็นเช่นนั้นจะได้รับและติดตั้งอย่างไร?


1
โปรดทราบว่า OpenJDK ยังไม่มี ARM JIT ทำให้ช้าลง
Thorbjørn Ravn Andersen

ปรากฏว่า ARM JIT โดย Oracle ไม่ได้เป็นส่วนหนึ่งของ OpenJDK
Thorbjørn Ravn Andersen

คำตอบ:


15

สำหรับส่วน "น้ำหนักเบา" ของคำถามของคุณมี JVM ขนาดเล็กจำนวนมากที่คุณอาจต้องการพิจารณา

ตัวอย่างเช่น JamVM ได้รับการออกแบบมาเพื่อทำงานในระบบขนาดเล็กเช่น RP และทั้งสองและ Cacao (JVM ที่เล็กกว่าอื่น) พร้อมใช้งานเป็นแพ็คเกจในเดเบียน:

icedtea-7-jre-jamvm
icedtea-7-jre-cacao

แม้ว่าทั้งคู่จะใช้ไลบรารีคลาส open-jdk AFAIK และไลบรารีคลาสที่เป็นส่วนใหญ่ (ฉลาดใช้พื้นที่ดิสก์) ในการติดตั้ง JRE


11

การติดตั้งจากที่เก็บควรทำงานได้ดีบน Debian:

sudo apt-get clean
sudo apt-get update
sudo apt-get install openjdk-6-jre

Java ดูเหมือนจะไม่สามารถใช้ได้ใน repo Arch

ใครช่วยกรุณาแก้ไขด้วยข้อมูลสำหรับ Fedora ฉันไม่มีความรู้เรื่อง distro นั้น


3

ฉันเคยเห็นความสนใจในการใช้งาน JVMs ที่หลากหลายลดลงบนราสเบอร์รี่ pi แต่มีคนไม่กี่คนที่ได้รวบรวมจาวาโดยตรงกับรหัสเครื่อง http://gcc.gnu.org/java/โฮสต์คอมไพเลอร์ที่สามารถให้รหัสเครื่องจาก java หรือจากรหัส byte java โครงการที่ฉันจะใช้ gcj สำหรับการจบลงด้วยการถูกทิ้งก่อนที่จะลงจากพื้น แต่คอมไพเลอร์ถูกเรียกเก็บเงินเป็นแบบที่ดีสำหรับระบบฝังตัวดังนั้นจึงควรเหมาะกับราสเบอร์รี่ pi

ครึ่งทางลงหน้าในฟอรั่มนี้จะมีใครสักคนกราฟที่ดีมากทำให้การเปรียบเทียบประสิทธิภาพการทำงานที่สัมพันธ์กันของ JVMs ต่างๆรวมทั้ง GCJ http://www.raspberrypi.org/phpBB3/viewtopic.php?t=6330&p=124107 โปรดจำไว้ว่ามาตรฐานเหล่านี้ได้ถูกสร้างขึ้นก่อนที่ประสิทธิภาพจะเพิ่มขึ้นอย่างมากซึ่งรวมอยู่ในเครื่องกลั่นราสเบียนล่าสุด


ตอนนี้หกเดือนต่อมาคุณมีประสบการณ์จริงกับการทำเช่นนี้บนราสเบอร์รี่หรือไม่?
Thorbjørn Ravn Andersen

2

ไม่มี JDK น้ำหนักเบาพิเศษที่ฉันรู้ แต่ openjdk ปกติจาก repo ดูเหมือนจะทำงานok-ishสำหรับฉัน

ฉันพูดว่าok-ish - ไม่มีปัญหากับการทำงานต่อ se อย่างน้อยก็ไม่มีที่ฉันได้พบ ซึ่งรวมถึงแอปพลิเคชั่นที่น่าจับตามอง Swing / AWT ดูเหมือนว่าจะทำงานได้ดี (ยังไม่ได้ลอง JavaFX) ประสิทธิภาพในทางกลับกันไม่ได้เป็นอะไรที่บ้านเกิดเนื่องจาก JIT ขาด (ดูคำถามนี้)


2

ออราเคิลได้ส่งมอบ Java 7 SE รุ่นหัวขาดไปยัง ARM สำหรับ Raspberry PI ฉันคัดลอกไฟล์คลาสจากรหัสที่ไม่ใช่คอนโซลของ EE และทำงานได้ดี - แต่ช้ากว่า Pentium IV ที่ 3GHz ประมาณ 9 เท่า ดู http://eclipsejpa.blogspot.ca/2012/10/java-se-7-embedded-on-raspberry-pi.html

http://www.oracle.com/technetwork/articles/java/raspberrypi-1704896.html


1

ออราเคิลเปิด Java 8 (และ Java 7) ARMสำหรับ ใช้ลิงค์จากหน้านี้เพื่อรับ Java เวอร์ชันที่ดีที่สุดในปัจจุบันสำหรับ Raspberry Pi ของคุณ

สิ่งนี้ควรใช้:

sudo apt-get update
sudo apt-get install oracle-java8-jdk

0

ฉันไม่ทำงานกับ JVM แต่ฉันรู้ ARM SoC บน Raspberry Pi สามารถเรียกใช้ Java bytecode ได้

ฉันไม่มี Raspberry Pi เพื่อทดสอบ JRE ดังนั้นฉันคาดเดา

ใช้: cat /proc/cpuinfo/และดูว่า java สามารถรองรับ Raspberry Pi ได้หรือไม่


1
การjavaตั้งค่าสถานะนี้/proc/cpuinfoหมายความว่า CPU สนับสนุนส่วนขยาย Jazelle คุณสามารถอ่านเกี่ยวกับเรื่องนี้ในวิกิพีเดีย
Krzysztof Adamski

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