[英]how to check jre version using java application
我已經在JDK7中創建了一個應用程序,但jre6仍然在市場上使用,如果我將我的jar文件發送給jre6的人,它就不會工作,有沒有辦法應用程序檢查jre版本,如果它沒有compat然后要求用戶更新..
您可以使用System.getProperty(String key); 以"java.version"
為鍵的方法。
String version = System.getProperty("java.version");
示例輸出:
1.6.0_30
可用的密鑰可以在這里找到。
System.getProperty("java.version")
注意 :它將返回當前jvm的版本,執行此代碼的jvm,如果您的計算機上安裝了java6和java7,並且您在java 7上運行此代碼,它將顯示版本7
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");
檢查版本並在版本不正確時拖出異常的示例 System.getProperty("java.version");
使用Java Web Start,如果它與您的jar不兼容,您將擁有一個關於Java版本的消息框。 例如:
<resources>
<j2se version="1.4+"
href="http://java.sun.com/products/autodl/j2se" />
在jnlp文件中
如果您嘗試在較舊版本的jre上運行Java文件而不是編譯它的版本,則會發生UnsupportedClassVersionError。
java.lang.UnsupportedClassVersionError:運行已編譯的java類文件時.class文件[at java.lang.ClassLoader.defineClass1(Native Method)]中的錯誤版本號。
實質上,您無法運行使用比JVM更新的版本編譯的.class文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.