Làm cách nào để chạy phần mềm Java?


35

Cách tốt nhất để chạy mã Java trên RP là gì? Việc cài đặt OpenJDK từ repos Debian / Fedora có hoạt động tốt không? Có một chỉnh sửa nào nên sử dụng để cải thiện hiệu suất? Ngoài ra, có sẵn một JVM "trọng lượng nhẹ" cho RP chạy tốt hơn / nhanh hơn JVM tiêu chuẩn từ OpenJDK không? Nếu vậy, làm thế nào điều này có được và cài đặt?


1
Lưu ý rằng OpenJDK chưa có ARM JIT, làm cho nó chậm.
Thorbjørn Ravn Andersen

Dường như ARM JIT của Oracle không phải là một phần của OpenJDK.
Thorbjørn Ravn Andersen

Câu trả lời:


15

Đối với phần "nhẹ" trong câu hỏi của bạn, có một số JVM nhỏ hơn mà bạn có thể muốn xem xét.

Chẳng hạn, JamVM ban đầu được thiết kế để hoạt động trong các hệ thống nhỏ như RP và cả nó và Cacao (một JVM nhỏ hơn khác) đều có sẵn dưới dạng các gói trong debian:

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

mặc dù cả hai đều sử dụng các thư viện lớp open-jdk AFAIK và các thư viện lớp là phần rất lớn (dấu chân của đĩa) khi cài đặt JRE.


11

Cài đặt từ kho lưu trữ sẽ hoạt động tốt trên Debian:

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

Java dường như không có sẵn trên Arch repo.

Ai đó có thể vui lòng chỉnh sửa với thông tin cho Fedora không, tôi không biết gì về bản phân phối đó.


3

Tôi đã thấy rất nhiều hứng thú khi chạy các JVM khác nhau đang chạy trên raspberry pi nhưng ít người đã xem xét việc biên dịch java thẳng vào mã máy. http://gcc.gnu.org/java/ lưu trữ một trình biên dịch có thể cung cấp cho bạn mã máy từ java hoặc từ mã byte java. Dự án mà tôi sẽ sử dụng gcj vì cuối cùng đã bị loại bỏ trước khi nó khởi đầu nhưng trình biên dịch được lập hóa đơn là phù hợp với các hệ thống nhúng nên nó phù hợp với raspberry pi.

Một nửa trang trên diễn đàn này có một biểu đồ rất đẹp được ai đó thực hiện so sánh hiệu suất tương đối của các JVM khác nhau cũng như gcj http://www.raspberrypi.org/phpBB3/viewtopic.php?t=6330&p=124107 . Hãy ghi nhớ những điểm chuẩn này đã được thực hiện trước khi tăng hiệu suất mạnh mẽ được bao gồm trong bản phân phối raspbian mới nhất.


Bây giờ, sáu tháng sau, bạn có kinh nghiệm thực hành khi làm điều này trên Raspberry không?
Thorbjørn Ravn Andersen

2

Không có JDK nhẹ đặc biệt mà tôi biết, nhưng openjdk bình thường từ repo dường như làm việc ok-ish cho tôi.

Tôi nói ok-ish - không có vấn đề gì với chức năng mỗi lần, ít nhất là không có gì tôi đã tìm thấy. Điều đó bao gồm các ứng dụng tuyệt vời, Swing / AWT dường như cũng hoạt động tốt (chưa thử JavaFX.) Mặt khác, hiệu suất không phải là bất cứ điều gì để về nhà do thiếu JIT (xem câu hỏi này .)



1

Oracle đã phát hành Java 8 (và Java 7) cho ARM. Sử dụng Liên kết từ Trang này để có phiên bản Java tốt nhất hiện tại cho Raspberry Pi của bạn.

Điều này cũng sẽ làm việc:

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

0

Tôi không biết nó hoạt động như thế nào với JVM, nhưng tôi biết SoC ARM trên Raspberry Pi có thể tự chạy mã byte Java.

Tôi không có Raspberry Pi để kiểm tra JRE. Thế là tôi suy đoán.

Sử dụng: cat /proc/cpuinfo/và xem java có thể hỗ trợ Raspberry Pi không.


1
javaCờ này /proc/cpuinfocó nghĩa là CPU hỗ trợ phần mở rộng Jazelle. Bạn có thể đọc về điều này trên wikipedia .
Krzysztof Adamski

Vấn đề với Jazelle là không có JVM nguồn mở nào có thể sử dụng nó.
Alex Chamberlain
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.