我已经在JDK7中做了一个应用程序,但是jre6仍在市场上使用,如果我将我的jar文件发送给使用jre6的人,它不会工作,有没有办法让应用程序检查jre版本,如果它没有compat 然后要求用户更新..
6 回答
您可以使用System.getProperty(String key); "java.version"
as 键的方法。
String version = System.getProperty("java.version");
示例输出:
1.6.0_30
可用的密钥可以在这里找到。
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 供应商名称、操作系统等。
System.getProperty("java.version")
注意:它将返回当前 jvm 的版本,执行此代码的 jvm,如果您的计算机上安装了 java6 和 java7,并且您在 java 7 上运行此代码,它将显示版本 7
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.
这是一个检查版本并在版本不正确时抛出异常的示例System.getProperty("java.version");
使用 Java Web Start,如果 Java 版本与您的 jar 不兼容,您会有一个消息框。例如:
<resources>
<j2se version="1.4+"
href="http://java.sun.com/products/autodl/j2se" />
在 jnlp 文件中