情況描述
此狀況發生在Chrome 的較舊的版本上:
機器已經安裝過JRE 或是JDK, 但是每次開啟Chrome 瀏覽器使用Applet時, 會報需要下載JRE的提示資訊(最新的JRE1.7)。
看上去, Chrome 並沒有找到系統已經安裝的JRE。
相比而言, 對於IE和Firefox 瀏覽器。我們可以在Java 控制台設定使用的JRE版本和支援的瀏覽器, 而且我們可以更改瀏覽器使用的JRE版本。
以上狀況,在新的版本的Chrome 上,看上去是正常的。(不知道是否是安裝順序的原因)
我的安裝順序如下:
1. 安裝Chrome的最新 版本 27.0.1453.110 m
2. 安裝JDK版本 jdk1.6.0
按此順序的話, Chrome開啟Applet 就正常了。
既然正常了, 看上去本文接著往下就沒什麼意義了, 但是還有一個問題該如何修改 Chrome 使用的JRE版本?
Java 控制台“瀏覽器的預設Java”並沒有Chrome 的選項。
IE 和Firefox 的設定方式
上面有提到, IE和Firefox 可以在 Java 控制台設定JRE以及支援的Browser。
設定方式如下:
1. 到 “Java安裝目錄\jre6\bin”,點擊javacpl.exe 開啟Java 控制台。
2. 到 "Java" tab 下, 可以看到機器安裝的所有Java Runtime 版本。可以勾選使用哪一個?
3. 到"進階" tab 下, 可以看到"瀏覽器的預設Java" 的勾選項。
做過變更後, 最好重新啟動瀏覽器。
Chrome 問題探討
以上有說到按以下兩步,Chrome 正常了。
1. 安裝Chrome的最新 版本 27.0.1453.110 m
2. 安裝JDK版本 jdk1.6.0
其實詳細來說,我的曆程應該如下:
曆史環境1:
jdk 1.5 , chrome <27 版本 ==》 JRE 不正常
曆史環境2:
於是我更新了Chrome 到27.0.1453.110 m ==》 JRE 不正常
最新環境:
於是我又卸載JDK1.5, 安裝了JDK 1.6 . ==》 正常了。^^
看一下,環境變數的變化。
發現在
[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\] 下面多了一項 @java.com/JavaPlugin 的配置。
看一下裡面的值, Path 指到的就是剛剛安裝JRE的路徑下的檔案。 匯出整個目錄的 javaPlugin.reg
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin]"Description"="Oracle?Next Generation Java?Plug-In""GeckoVersion"="1.9""Path"="C:\\Program Files\\Java\\jre6\\bin\\new_plugin\\npjp2.dll""ProductName"="Oracle?Java?Plug-In""Vendor"="Oracle Corp.""Version"="160_24"[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin\MimeTypes][HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin\MimeTypes\application/x-java-applet]"Description"="Java?Applet"[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin\MimeTypes\application/x-java-applet;jpi-version=160_24]"Description"="Java?Applet"[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin\MimeTypes\application/x-java-applet;version=1.1]"Description"="Java?Applet"[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin\MimeTypes\application/x-java-applet;version=1.1.1]"Description"="Java?Applet"[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin\MimeTypes\application/x-java-applet;version=1.1.2]"Description"="Java?Applet"[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin\MimeTypes\application/x-java-applet;version=1.1.3]"Description"="Java?Applet"[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin\MimeTypes\application/x-java-applet;version=1.2]"Description"="Java?Applet"[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin\MimeTypes\application/x-java-applet;version=1.2.1]"Description"="Java?Applet"[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin\MimeTypes\application/x-java-applet;version=1.3]"Description"="Java?Applet"[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin\MimeTypes\application/x-java-applet;version=1.3.1]"Description"="Java?Applet"[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin\MimeTypes\application/x-java-applet;version=1.4]"Description"="Java?Applet"[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin\MimeTypes\application/x-java-applet;version=1.4.1]"Description"="Java?Applet"[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin\MimeTypes\application/x-java-applet;version=1.4.2]"Description"="Java?Applet"[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin\MimeTypes\application/x-java-applet;version=1.5]"Description"="Java?Applet"[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin\MimeTypes\application/x-java-applet;version=1.6]"Description"="Java?Applet"[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin\MimeTypes\application/x-java-vm]"Description"="Java?Virtual Machine"[HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin\MimeTypes\application/x-java-vm-npruntime]"Description"="Java?Applet"
如此看來, 如果我們需要修改JRE 版本的話, 修改這個註冊表資訊就可以了。
如果註冊表裡沒有這個配置的話, 直接寫一個這個檔案,點擊執行, 就匯入到註冊表了。
總結
在網路上搜了一下, 有發現解決類似問題的方法。正好和以上類似:
- Run the plugin installer anyways.
- Start -> Run (Winkey+R) and then type in
regedit to edit the registry.
- Find HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@java.com/JavaPlugin.
- Export it as a reg file to say, your desktop (right-click and select
Export).
- Uninstall the JRE (Control Panel -> Add or Remove Programs). This should delete the key above, explaining the need to export it in the first place.
- Open the reg file exported to your desktop with a text editor (such as Notepad++).
-
Edit "Path" so that it matches the corresponding dll inside your JDK installation:
另外, 有個問題是:
在JRE1.5 或是非1.6 的版本的 jre\bin 目錄下 是否存在new_plugin 的目錄,也就是說是否存在 npjp2.dll 這個檔案?