2010-01-21 52 views
1

是否有一個簡單的解決方案來獲取在用戶的工作站上使用php運行的Java版本?基本上我想知道在訪問我的門戶的用戶機器上運行的Java版本。由於我們的產品是基於Java的,因此這些數據將幫助我稍後做出一些決策。如何使用PHP獲取用戶的Java版本?

回答

6

客戶端(確定信息)和服務器端(發送信息)都有(直接)訪問的唯一客戶端語言是JavaScript和ActionScript。

我認爲你是一個PHP程序員,對JavaScript已經不那麼熟悉了,所以我會繼續這樣做。幸運的是,Sun已經提供了完全滿足這些需求的Java Deployment Toolkit JavaScript庫。下面是一個SSCCE,只是copy'n'paste'n'run它:

<!doctype html> 
<html lang="en"> 
    <head> 
     <title>SO question 2111383</title> 
     <script type="text/javascript" src="http://java.com/js/deployJava.js"></script> 
     <script type="text/javascript"> 
      alert(deployJava.getJREs()); // Show all installed JRE versions. 
     </script> 
    </head> 
    <body> 
     <h1>That's all, Folks!</h1> 
    </body> 
</html> 

一旦有信息,只需將其發送到服務器端。您可以通過將其作爲表單的隱藏輸入元素同步傳遞,或者使用Ajaxical技術異步執行。 jQuery非常適合這個。只要做一個$.get('script.php?java=' + deployJava.getJREs());左右。

+1

@Downvoter:謹慎解釋?這只是無知嗎? :o – BalusC 2010-01-21 17:52:24

+0

+1以反擊行爲。 – 2010-01-21 18:14:47

+0

+1好證明Js可以用來獲取JRE信息。 – 2010-01-21 18:19:11

0

他們的客戶需要明確向您發送這些信息。如果他們通過網絡瀏覽器訪問您的網站,那麼這不是用戶代理字符串中顯示的內容。另一方面,如果他們通過Java代碼以編程方式訪問您的站點,那麼它將顯示在用戶代理字符串中。但考慮到你對產品的陳述,我傾向於認爲這只是一個用於瀏覽器訪問的普通網站。

+0

downmodder的任何意見?也許你不同意? – danben 2010-01-21 18:28:18

0

browser_get()函數將嘗試告訴您Java applet的執行是否可用。

單憑PHP我相信這是你最好的選擇。

+0

雖然這不會給我準確的Java版本...... – Chantz 2010-01-21 19:19:52

+0

正如我所說,你無法單獨使用PHP - 那是你的問題,不是嗎? – 2010-01-21 20:15:22

1

檢查javatester.org他們使用一個小applet來獲取正在運行的JVM版本。您可以修改它以將結果推送到您的服務器。

1

如果Java正在運行,只需調用放置在服務器上的腳本,User-Agent應爲您提供運行時環境的確切版本。由於部署工具包javascript-code只會列出最多17個發佈的Java 6版本...以及更早版本,因此您必須猜測特定瀏覽器使用的是什麼版本。

相關問題