2013-09-30 16 views
51

Tôi đã thực hiện một số nghiên cứu về JavaFX trong năm qua và thậm chí còn xây dựng một số ứng dụng máy tính để bàn cơ bản với nó.JavaFX - nó có thực sự được triển khai trong trình duyệt không?

Mô tả được sử dụng để tạo RIA (Ứng dụng Internet phong phú).

http://en.wikipedia.org/wiki/Javafx

Nhưng có thể nó thực sự được triển khai bởi một trình duyệt web? Tôi chỉ triển khai nó thông qua một tệp JAR thực thi.

Dễ triển khai như thế nào thông qua trình duyệt web? Nó có hoạt động không? Có ai có kinh nghiệm với điều này?

http://docs.oracle.com/javafx/2/deployment/deployment_toolkit.htm

+0

Tại sao phải sử dụng JavaFX trong trình duyệt? Chỉ cần dính với ngăn xếp thông thường. –

Trả lời

55

Cập nhật cho Java 9, Tháng 2017

Theo Java 9 release notes:

Java Applet và chức năng WebStart, bao gồm các API Applet, Plug-in Java, Trình xem Java Applet, JNLP và Java Web Start bao gồm công cụ javaws đều bị phản đối trong JDK 9 và sẽ bị loại bỏ trong bản phát hành trong tương lai.

Vì vậy, đối với Java 9+, việc triển khai JavaFX trong trình duyệt bằng trình cắm Java sẽ chỉ có thể sử dụng công nghệ không dùng nữa. Oracle ghi chú trong một phần khác của số Java 9 release notes:

Không sử dụng công nghệ Java Plug-in và applet liên quan trong bản dựng JDK 9 của Oracle. Trong khi vẫn có sẵn trong JDK 9, các công nghệ này sẽ được xem xét để loại bỏ khỏi Oracle JDK và JRE trong một bản phát hành trong tương lai. Các applet và các ứng dụng JavaFX được nhúng trong một trang web yêu cầu Java Plug-in để chạy. Hãy xem xét viết lại các loại ứng dụng này như Java Web Start hoặc các ứng dụng độc lập.

Lưu ý: Java Web Start không thực sự là một thay thế vì điều đó cũng bị phản đối (dù sao, nó khác với ứng dụng được nhúng và hiển thị trong trang trình duyệt).

Là một thay thế cung cấp chức năng tương tự, hãy xem xét một cái gì đó như jpro, triển khai các ứng dụng JavaFX trong trình duyệt không có plugin Java (jpro hiện chỉ có phiên bản beta kín, vì vậy nó không phải là giải pháp khả thi kể từ tháng 10 năm 2017, nhưng có lẽ một ngày nào đó trong tương lai ...).

Hiện tại, tôi khuyên bạn nên cách tốt nhất để triển khai các ứng dụng JavaFX là self-contained applications, chạy bên ngoài trình duyệt.


câu trả lời trước cho Java 7 và 8

JavaFX - có thể nó thực sự được triển khai trong một trình duyệt?

Có, các ứng dụng JavaFX có thể được triển khai để chúng chạy bên trong trang web được lưu trữ trên web html.

Công nghệ cho phép điều này xảy ra là Java Plugin. Plugin này hiện là giải pháp plugin trình duyệt dựa trên NPAPI. Plugin Java được vận chuyển với Oracle Java 7 Runtime Standard Environment.

Không phải tất cả các trình duyệt đều được hỗ trợ, chỉ những trình duyệt được liệt kê trên JavaFX Supported Configurations page.

Dễ triển khai như thế nào thông qua trình duyệt web?

Cách dễ nhất để triển khai một dự án JavaFX trong một trình duyệt web là:

  1. Create a new JavaFX project in NetBeans.
  2. Develop a simple HelloWorld App.
  3. Làm theo hướng dẫn cho Deploying your first JavaFX Application.

Điều này không khó (theo ý kiến ​​của tôi).

Cách khác, làm theo hướng dẫn về tham chiếu chi tiết cho Deploying JavaFX Applications (hoặc sử dụng các công cụ của bên thứ 3). Đối với nhiều dự án, sử dụng một công cụ không phải là NetBeans IDE để thực hiện bao bì là một cách tiếp cận tốt hơn. Tuy nhiên, thường dễ dàng hơn để cho NetBeans IDE xử lý các nhiệm vụ đóng gói triển khai cho bạn.


Điều sau đây không liên quan đến trả lời câu hỏi gốc, nhưng cung cấp một số ý kiến ​​và thông tin được yêu cầu trong nhận xét về câu trả lời này.

Một số vấn

Có những cạm bẫy để triển khai Java trong trình duyệt. Tôi khuyến khích bạn làm nghiên cứu Google của riêng bạn về chủ đề này.

Trong đầu, dựa trên mô hình triển khai JavaFX 2.x hiện tại, đối với hầu hết các loại ứng dụng yêu cầu trình duyệt làm thùng chứa thời gian chạy chính, sử dụng JavaFX không phải là giải pháp thích hợp.

Kiểm tra các yêu cầu triển khai và thời gian chạy cho ứng dụng của bạn. Dựa trên yêu cầu của bạn và kiến ​​thức về mô hình thực thi dựa trên trình duyệt JavaFX, hãy quyết định xem việc triển khai dựa trên trình duyệt bằng cách sử dụng công nghệ JavaFX có phải là cơ chế chính xác cho ứng dụng của bạn hay không.

Một vài khó khăn tiềm năng cho trình duyệt nhúng các ứng dụng JavaFX

Một số trình duyệt quan trọng (ví dụ Internet Explorer 10, iOS Safari và chẳng mấy chốc Desktop Chrome) không cho phép thực hiện các plugin sử dụng NPAPI đang được sử dụng bởi các plugin trình duyệt Java = > một số người dùng mục tiêu của bạn có thể không thể sử dụng ứng dụng của bạn.

Với ứng dụng nhúng trình duyệt, bạn không có toàn quyền kiểm soát thời gian chạy ứng dụng của bạn (trình duyệt + giao diện trình cắm thêm Java runtime) => ứng dụng hoạt động khi cài đặt lần đầu có thể ngừng hoạt động như mong đợi sau bản cập nhật cho các thành phần thời gian chạy này.

Deployment Alternatives

Nếu một mô hình triển khai dựa trên trình duyệt là không thích hợp cho ứng dụng của bạn, có những cách khác để deploy JavaFX applications (ví dụ WebStart, lọ độc lập và các ứng dụng khép kín).

+1

Cảm ơn nhiều vì nhận xét của bạn. Tôi nghĩ rằng bạn sẽ làm tất cả mọi người một ưu tiên lớn nếu bạn có thể liệt kê chỉ 2-3 khiếu nại hàng đầu của bạn về cách sử dụng JavaFX trong một broswer. –

+2

OK, cập nhật câu trả lời với một vài khó khăn tiềm ẩn (không phải khiếu nại). – jewelsea

+0

@ jewelsea tôi muốn chạy javafx trên andorid. Tôi đọc nó ở đây https://bitbucket.org/javafxports/android/wiki/Building%20and%20deploying%20JavaFX%20Ứng dụng nhưng không thể thực hiện nó ... cho tôi một số gợi ý? –

2

Tôi tìm thấy giải pháp theo cơ hội here. những gì còn thiếu trong dự án web của tôi.

tôi phải thêm video này vào file web.xml:

<mime-mapping> 
    <extension>jnlp</extension> 
    <mime-type>application/x-java-jnlp-file</mime-type> 
</mime-mapping> 
37

JavaFX - nó có thể thực sự được triển khai trong một trình duyệt?

Không, không phải nữa.

Câu trả lời sử dụng là có, như được nêu trong this answer, mặc dù ngay cả trong năm 2013 khi viết bằng văn bản trên tường. Tuy nhiên, ở đây trong năm 2016 câu trả lời là không, nó không thể. Trình duyệt hiện đại về cơ bản không hỗ trợ NPAPI nữa (Firefox làm cho Java, nhưng chỉ cho đến cuối năm), và NPAPI là bắt buộc đối với plugin Java.

+0

thú vị ... đó là một số tin tức lạ với tôi –

8

Tính đến năm 2016, bạn có thể sử dụng jpro mà không cần bất kỳ plugin trình duyệt nào. Và nó thậm chí chạy trên điện thoại di động.

+0

nơi tôi có thể tìm hiểu về @KIC –

+1

đó là bản beta thử nghiệm bạn có thể đăng ký để được thông báo khi có hoặc (tôi đoán) yêu cầu quyền truy cập beta. – KIC

+0

Ai có thể cho thấy dự án làm việc thực sự về công nghệ này không? – user2602807

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