10

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

4

6 回答 6

12

您可以使用System.getProperty(String key); "java.version"as 键的方法。

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

示例输出:

1.6.0_30

可用的密钥可以在这里找到。

于 2012-05-16T06:51:06.550 回答
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 供应商名称、操作系统等。

于 2012-05-16T07:02:07.680 回答
2
System.getProperty("java.version")

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

于 2012-05-16T06:51:10.937 回答
0

UnsupportedClassVersionError would occur if you try to run a Java file on an older version of jre compared to the version on which it was compiled.

java.lang.UnsupportedClassVersionError: Bad version number in .class file [at java.lang.ClassLoader.defineClass1(Native Method)] on running a compiled java class file.

In essence you can not run .class files that are compiled with a newer version than the JVM.

于 2012-05-16T08:54:16.840 回答
0

这是一个检查版本并在版本不正确时抛出异常的示例System.getProperty("java.version");

于 2012-05-16T06:53:09.917 回答
0

使用 Java Web Start,如果 Java 版本与您的 jar 不兼容,您会有一个消息框。例如:

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

在 jnlp 文件中

于 2012-05-16T06:55:18.007 回答