处理桌面应用程序的特定Java版本

时间:2015-03-04 19:14:50

标签: java maven javafx-8

当Java桌面应用程序(可执行JAR)需要特定(或更新)的Java版本/更新时,处理情况的最佳方法是什么,以获得一些NoClassDef异常?

详细信息:我有JavaFX 8桌面应用程序,使用Maven和com.zenjava.javafx-maven-plugin构建到可执行JAR。我正在使用JDK 8u40的新功能。当有人试图用较旧的Java版本运行它时,我想很好地处理情况。

首先,大多数低端方法都是检查

System.getProperty("java.version");

在主要功能的开头,用几个“ifs”解析它是主要的> = 8并更新> = 40,如果没有显示一些弹出而不是app。但在我看来,这似乎是平庸的解决方案。

我想知道有更好的方法吗?我想更多地了解直接代码解决方案,外部库,其他jar启动器或Maven选项。

编辑:其他信息 - 我想避免特定于平台的解决方案

1 个答案:

答案 0 :(得分:1)

主要适用的解决方案:只需创建包含JRE 的原生Bunde 。这是调用mvn jfx:native时的默认设置,因此您不必担心该课程在那里,因为您捆绑了该特定版本。

main reason why some正在使用该选项。想象一下你需要Java 8的情况,但用户只是使用Java 7等等,它确实会使捆绑更大,但它可以保护你免受这些问题的困扰。

免责声明:我是javafx-maven-plugin的维护者,有example-projects;)但还没有Cookie。