如何使用java应用程序检查jre版本

时间:2012-05-16 06:48:30

标签: compatibility java

我已经在JDK7中创建了一个应用程序,但是jre6仍然在市场上使用,如果我将我的jar文件发送给jre6的人,它不会工作,有没有办法应用程序检查jre版本,如果它没有compat然后要求用户更新..

6 个答案:

答案 0 :(得分:12)

您可以使用System.getProperty(String key);方法将"java.version"作为密钥。

String version = System.getProperty("java.version");

示例输出:

1.6.0_30

可用的密钥可以在here找到。

答案 1 :(得分:2)

System.getProperty("java.version")

注意:它将返回当前执行此代码的jvm版本jvm,如果你有java6& java7安装在您的计算机上,您在java 7上运行此代码,它将向您显示版本7

答案 2 :(得分:2)

static public void main(String[] arg) throws IOException
    {
        PrintStream out = System.out;
        Properties pro = System.getProperties();
        Set set = pro.entrySet();

       Iterator<Map.Entry<String , String >> itr = set.iterator();
        while(itr.hasNext())
        {
            Map.Entry ent = itr.next();
            out.println(ent.getKey() + " -> " + ent.getValue() + "\n");
        }
}

使用System.getProperty("java.version")System.getProperty("java.runtime.version")获取已安装的java版本 上面的代码片段可以帮助您找到更多详细信息,例如java供应商名称,操作系统等。

答案 3 :(得分:0)

这是一个example,它使用System.getProperty("java.version");

检查版本并在版本错误时抛出异常

答案 4 :(得分:0)

使用Java Web Start如果它与你的jar不兼容,你有一个关于java版本的消息框。例如:

<resources>
       <j2se version="1.4+"
             href="http://java.sun.com/products/autodl/j2se" />

在jnlp文件中

答案 5 :(得分:0)

如果您尝试在旧版本的jre上运行Java文件而不是编译它的版本,则会发生UnsupportedClassVersionError。

java.lang.UnsupportedClassVersionError:.class文件中的错误版本号 [at java.lang.ClassLoader.defineClass1(Native Method)] 运行已编译的java类文件。

实质上,您无法运行使用比JVM更新的版本编译的.class文件。