2016-06-29 19 views
6

Tôi biết rằng Oracle đã loại bỏ JavaFX trong 8u33, nhưng tôi tự hỏi tại sao tôi không thể sử dụng JavaFX với jdk1.8.0? Tôi đã nhận nó từ các tài liệu lưu trữ Oracle (http://download.oracle.com/otn/java/jdk/8-b132/jdk-8-linux-arm-vfp-hflt.tar.gz)JavaFX trên ARM chạy jdk1.8.0

Tôi đã này được chiết xuất trong /usr/bin/java_8_arm/jdk1.8.0 và đang chạy file .jar của tôi với sudo /usr/bin/java_8_arm/jdk1.8.0/bin/java -jar jarfile.jar

Chạy /usr/bin/java_8_arm/jdk1.8.0/bin/java -version lợi nhuận

java version "1.8.0" 
Java (TM) SE Runtime Environment (build 1.8.0-b132) 
Java HotSpot (TM) client VM (build 25.0-b70, mixed mode) 

và chạy System.out.println("Running Java version: " + Runtime.class.getPackage().getImplementationVersion());

trả về Running Java Version: 1.8.0

Các lỗi tôi nhận được là:

Exception in thread "main" java.lang.NoClassDefFoundError: javafx/embed/swing/JFXPanel 
    at front_end.GUI.initGUI(GUI.java:47) 
    at back_end.Run.main(Run.java:28) 
Caused by: java.lang.ClassNotFoundException: javafx.embed.swing.JFXPanel 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 2 more 

Nếu bạn đang tự hỏi, tôi đang lập trình và biên soạn chương trình vào một tập tin chia sẻ qua Windows 7 và chạy JAR từ một Pi mâm xôi.

inb4 "tại sao bạn cần javafx trên pi mâm xôi" - để hiển thị html, vì các thành phần java khác chỉ hỗ trợ html 3.2. Tôi đã thử các trình kết xuất khác. Đây là người duy nhất tôi thậm chí có thể làm việc ngay trên máy tính để bàn của tôi, hãy để một mình RPi.

Ngoài ra, tôi cũng đang lập trình và biên dịch trên 1.8.0.

UPDATE:

Như mỗi câu trả lời José Pereda, tôi đã tải về các tập tin JavaFX và đặt chúng trong java ban đầu của tôi cài đặt (bây giờ tôi đang sử dụng /usr/bin/jdk8u6/ như thư mục của tôi, và rõ ràng là jdk1.8.0_06).

Đây là hệ thống phân cấp cài đặt của tôi, bắt đầu từ thư mục lib:

/usr/bin/jdk8u6/lib/: 
arm ext    javafx.properties jfxswt.jar tools.jar 
ct.sym ir.idl    jconsole.jar  orb.idl 
dt.jar javafx.platform.properties jexec   sa-jdi.jar 

/usr/bin/jdk8u6/lib/arm: 
jli   libgstreamer-lite.so  libjfxmedia.so 
libdecora_sse.so  libjavafx_font_freetype.so libjfxwebkit.so 
libfxplugins.so  libjavafx_font_pango.so  libprism_common.so 
libglass_monocle.so libjavafx_font.so  libprism_es2_eglfb.so 
libglass_monocle_x11.so libjavafx_iio.so  libprism_es2_monocle.so 
libglass.so  libjawt.so   libprism_sw.so 

/usr/bin/jdk8u6/lib/arm/jli: 
libjli.so 

/usr/bin/jdk8u6/lib/ext: 
jfxrt.jar 

tôi vẫn nhận được lỗi tương tự.

Trả lời

3

Bạn có thể tải phiên bản cập nhật và nâng cấp của JavaFX cho ARM từ đây: JavaFX Embedded SDK

Sau khi tải về Raspberry Pi, bạn sẽ cần phải giải nén và sao chép nội dung vào JDK của bạn 1.8 (kiểm tra này link cho được nhúng).

Bạn sẽ có thể chạy phiên bản JavaFX mới nhất cho ARM * trên Pi của bạn, bao gồm cả điều khiển WebView.

Ngoài ra, bằng cách sử dụng plugin Gluon cho IDE của bạn, bạn cũng có thể triển khai dự án remotely dự án trên Pi của mình.

EDIT

* ARM: Lưu ý rằng JavaFX cho ARM chưa bao giờ được hỗ trợ Swing. Các tính năng khác như WebView và Media cũng không được hỗ trợ, nhưng gần đây chúng đã được đưa vào bản dựng của Gluon.

+0

Cảm ơn bạn đã từng triển khai từ xa, tôi có thể sử dụng điều đó. Đối với phần còn lại, thử nghiệm bây giờ – zfollette

+0

Không hoạt động. Cập nhật OP – zfollette

+1

Ah, tôi quên đề cập đến: Swing chưa bao giờ được hỗ trợ trong JavaFX cho ARM, nhưng vì bạn đang sử dụng JavaFX với một WebView, bạn có thể sử dụng nó không? –

Các vấn đề liên quan