2011-06-29 20 views
0

我需要檢測客戶端操作系統版本和它是否是32位/ 64位的Windows XP(32位)/ Mac OS X的10.3.x上/ Linux的的OpenSUSE 11.2等客戶OS )使用小程序。 我將不得不在加載JSP時自動加載小程序,它將顯示有關用戶操作系統的所有正確信息。 請幫幫我。檢測使用的Applet

回答

2

您可以使用java.lang.System中得到你的代碼運行的系統基本信息。不知道你是否想要比這更詳細的東西。經由java.lang.System.getProperties可用()

System.out.println(System.getProperty("os.name")); 
System.out.println(System.getProperty("os.arch")); 
System.out.println(System.getProperty("os.version")); 

性能列here

編輯:

os.nameos.archos.version不garaunteed給你有用的信息系統屬性。它高度依賴於您使用的平臺和JVM。如果你想要一個類比,你可以認爲它和HTTP請求中發送的用戶代理屬性屬性大致相同(所以,幾乎沒有用)。您可以使用一些第三方工具來獲取更好的系統信息,但是爲了使它們能夠正常工作,您必須使用sign,因爲它們要求系統上的權限不在Applet Security Sandbox之外。例如,在this SO帖子中提到的SIGAR by HyperInc

最後,爲了讓您的Applet加載到您的頁面上,您需要使用小程序標籤將其包含在頁面中。下面有一個例子:

Applet標記的一些更多的例子被示出在Oracle's site

希望這會有所幫助。

+0

感謝您的回覆......我做了同樣的事情,但它不可靠......它並不總是檢測到正確的版本和位信息。如果你能告訴我一些其他的解決方案,這將是很好的。第二件事你可以告訴我,如何加載正文加載時間的小程序。其實我以前沒有用過applet。 – Neel

+0

@Neel,是的,這些系統屬性是非常基本的,就像我在我的回答中提到的那樣。我做了一些編輯,因爲你需要更多的具體信息,而不僅僅是使用java.lang.System。我建議在合併任何第三方庫並簽署jar之前,先讓applet先處理基本信息。 – Perception

+0

@知覺 - 我試過了SIGAR,它很好。但它不能被使用,因爲我需要關於客戶端機器的操作系統的信息意味着遠程操作系統,因爲它是一個web項目。我會用用戶代理完成它,但我必須使用Applet並使用java進行檢測。 – Neel

0

您可能會有解析User-Agent http標頭的運氣。您可以使用JavaScript將它們傳遞給applet,也可以讓applet直接讀取它們。