2012-06-29 8 views

Trả lời

31
com.sun.javafx.runtime.VersionInfo.getRuntimeVersion(); 
+0

Không có vẻ làm việc thông qua web Java bắt đầu – assylias

+0

thể bạn, xin vui lòng, xây dựng? Có bất kỳ đầu ra hoặc ngoại lệ nào không? –

+1

Tôi không có nó ở phía trước của tôi, nhưng trong chất: Ngoại lệ Classloader, không thể tải com.sun.javafx.runtime.VersionInfo. Và chương trình không bắt đầu. – assylias

14

Bạn có thể nhận số javafx.runtime.version từ Thuộc tính hệ thống.

import javafx.application.Application; 
import javafx.stage.Stage; 
public class ReportVersion extends Application { 
    public static void main(String[] args) { launch(args); } 
    @Override public void start(Stage stage) { 
    System.out.println("javafx.runtime.version: " + System.getProperties().get("javafx.runtime.version")); 
    System.exit(0); 
    } 
} 

Lưu ý rằng phương pháp truy cập hệ thống tài sản có thể gây ra một ngoại lệ an ninh nếu một ứng dụng unsigned được nhúng vào trong một trình duyệt hoặc truy cập thông qua WebStart, vì vậy com.sun gọi Sergey có thể tốt hơn mặc dù tất cả com.sun cuộc gọi được chấp nhận và không một phần của API công khai JavaFX chính thức.

Cập nhật

@assylias bình luận về câu trả lời của Sergey dường như để cho biết rằng Sergey com.sun có thể gây ra một ngoại lệ an ninh nếu một ứng dụng unsigned được nhúng vào trong một trình duyệt hoặc truy cập thông qua WebStart. Vì vậy, có lẽ không có giải pháp tốt để xác định phiên bản thời gian chạy javafx khi chạy trong các điều kiện cụ thể đó.

+0

Điều này không hoạt động trong một applet sandboxed do thiếu quyền. Phiên bản sửa đổi nhỏ 'System.getProperty (" javafx.runtime.version ")' cũng không hoạt động với lỗi này: 'java.security.AccessControlException: truy cập bị từ chối (" java.util.PropertyPermission "" javafx.runtime.version " "read") ' –

36

Một trong những cách đơn giản là chỉ cần đọc tệp javafx.properties nằm trong thư mục $JAVA_HOME/jre/lib của bạn.

Tôi đã cài đặt Java 1.7 u9 vào lúc này. JavaFX đi kèm với nó là v2.0.3 để các tập tin nói trên chứa các dòng sau:

javafx.runtime.version=2.0.3 
+0

Tôi đã cài đặt java 1.8.0-31 và vì vậy tôi nhận được' javafx.runtime.version = 8.0.31'. Thê nay đung không? – Brian

+1

Vâng, đúng thế. Java 1.8.0 có JavaFX 8 đi kèm. – DejanLekic