網頁顯示 Java applet 的問題

也是之前一位朋友問的問題。他說在瀏覽網頁時,Java applet 反應非常慢,往往要等 10 秒左右才能將 applet 內容顯示出來;瀏覽器是 IE 7。平時我並沒有特別注意這個現象,於是到他指定的網頁測試一下,果不其然。

後來請他試試把 IE 的「網際網路選項 | 進階 | Java(Sun) | 將 JRE 1.#.# 用於 applet」取消勾選,結果速度就快很多,applet 在 2 秒內可顯示完畢。這是因為他的環境原本就有裝 Microsoft VM 的緣故;那個選項不要勾選,IE 就會使用 Microsoft VM 來執行 Java applet。這樣看來,新版的 Sun JVM 在執行 applet 的速度上,似乎比大它好幾歲的 Microsft VM 慢很多。

事隔幾週,我把自己電腦上的 JDK、JRE 全部移除(現在已想不起來當時為什麼要移除,大概是手癢吧),再過些時日,發現某個網頁的一個區塊顯示一個打叉圖示,才注意到自己的環境已經完全沒有 JVM 了--不管是 Sun 的,還是 Microsoft 的版本。

原本以為問題很簡單,下載 Microsoft VM 安裝就行了,結果安裝了兩個版本都沒有用。其中一個版本在安裝時還會出現完全沒有任何訊息的對話窗,裡面就只有個紅色叉叉。依官方提供的方法檢查系統是否已安裝 Microsoft VM,結果是沒有。猜想大概是我的環境太複雜了,而且 Microsoft VM 又是好幾年前的東西,所以裝不起來。那就把 Sun 的 JVM 裝回來吧。

安裝完 Sun 的 JVM 之後,網頁是可以正常顯示 applet,但是又發現一個新問題:某個我經常使用的 Windows forms 應用程式,它有一個視窗也會顯示 Java applet(應該是用 WebBrowser ActiveX 元件),而這個視窗突然無法正常顯示 applet 了,視窗裡面只顯示一個打叉的圖示。

無論我重新安裝幾次 JVM(JDK v5 和 v6),結果都一樣。後來用 Google 搜尋關鍵字:WebBrowser + applet ,這才找到解決方法。原來只要在系統中增加一個環境變數就行了:

JAVA_PLUGIN_WEBCONTROL_ENABLE=TRUE

從網路上找到的解釋,是因為微軟的 WebBrowser 控制項預設會以 Microsoft VM 來執行 applet,而我的環境又正好沒有這東西,所以無法顯示 applet。設定此環境變數會令 WebBrowser 控制項改用 Sun 的 JVM 執行 applet,問題便解決了。
Copyright © 2012. Huan-Lin 學習筆記 - All Rights Reserved
Powered by Blogger
Template Design by Cool Blogger Tutorials
Published by Templates Doctor