如何在用户尝试运行应用程序之前检查安装了哪个版本的Java?

问题描述:

如果用户双击可执行JAR文件,是否可以检查他或她已安装的Java版本,然后在窗口中显示相应的消息,说明他或她需要X版本的Java来运行应用程序?如何在用户尝试运行应用程序之前检查安装了哪个版本的Java?

我正在创建一个需要Java 7的应用程序,如果用户没有安装该版本,我想显示一条消息,指出他或她需要下载并安装它。

当然,用户可以输入java -version,但在不知道如何检查安装版本的人员的窗口中显示版本会很好。是否有可能这样做?

或者我应该在启动应用程序之前运行某种类型的脚本来检查吗?

+1

[Launch4j](http://launch4j.sourceforge.net/)有这样的选项。 – PeterMmm 2012-07-22 07:25:28

检查System.getProperty("java.version")

你需要做一些分析,但这应该通过 System.getProperty("java.version")

参见文档给你点

+1

而且您必须格外小心,检查代码实际上是用足够古老的Java编译的。否则,即使由于不兼容的类版本,也不能执行检查。 – 2012-07-22 07:37:44

+0

如果api从java 1.1开始回溯,并且他正在1.7上开发,那么api是不是向后兼容? – Kuberchaun 2012-07-22 08:11:34

+0

@mpi我不确定这是否合理。如果我运行一个用java 6编译的程序,java 7将运行它。它只是相反的,并且很可能早期版本的java甚至不会在代码中。我们使用这个检查来确保用户使用java 6.12+和更少的7 – MadProgrammer 2012-07-22 08:34:42

的跳跃,您就能获得Java版本(http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html)