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