如何获取JavaFX的版本号?

daj*_*ood 38 java javafx javafx-2

如何在运行时找出我正在使用的JavaFX版本?

Dej*_*kic 43

一种简单的方法是简单地读取目录中的javafx.properties文件$JAVA_HOME/jre/lib.

我目前安装了Java 1.7 u9.与之捆绑的JavaFX是v2.0.3,因此上述文件包含以下行:

javafx.runtime.version=2.0.3
Run Code Online (Sandbox Code Playgroud)

  • 是的.Java 1.8.0捆绑了JavaFX 8. (3认同)
  • 我安装了 java 1.8.0-31,所以我得到了 `javafx.runtime.version=8.0.31`。这是正确的吗? (2认同)

Ser*_*nev 38

com.sun.javafx.runtime.VersionInfo.getRuntimeVersion();
Run Code Online (Sandbox Code Playgroud)

  • @BasilBourque 是的,这是太旧的方法了。请使用系统属性。 (2认同)

jew*_*sea 19

您可以javafx.runtime.version从系统属性中获取数字.

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);
  }
}
Run Code Online (Sandbox Code Playgroud)

需要注意的是系统属性的访问方法可能导致安全异常,如果未签名的应用程序嵌入浏览器或通过Webstart的访问,因此谢尔盖的com.sun通话可能会更好,虽然所有的com.sun呼叫都弃用,并非正式的JavaFX公共API的一部分.

更新

@assylias对谢尔盖答案的评论似乎表明,com.sun如果未签名的应用程序嵌入在浏览器中或通过WebStart访问,则Sergey 可能会导致安全性异常.因此,在这些特定条件下运行时,确定javafx运行时版本可能没有好的解决方案.