當 Chrome 為預設瀏覽器時,Java 7 update 6 在 Windows 7 上安裝失敗

當 Chrome 為預設瀏覽器時,Java 7 update 6 在 Windows 7 上安裝失敗

我正在為使用者配置全新的Lenovo U410系統和Windows 7 Home Premium。我直接從商店收到了系統。作為配置的一部分,我使用線上安裝程式安裝了 Java。這工作正常。

後來,由於我犯了一個錯誤,我需要將系統恢復到出廠預設狀態。出廠預設格式 C:\ 並恢復(據說)準確的出廠配置。然而,這樣做之後,我不再能夠使用之前使用的相同方法成功安裝Java。

現在,每當我嘗試使用線上 Java 安裝程式時,都會發生以下情況。首先,總是出現一個視窗「歡迎使用Java」、「正在下載Java安裝程式...」。短時間後該視窗消失,然後發生以下三種情況之一:

  1. 恢復出廠設定後第一次執行此操作時,我收到 Windows 錯誤報告,其中包含以下資訊:

    應用程式名稱:JavaSetup7u5.exe
    應用程式版本:7.0.50.6
    應用程式時間戳記:4feacd84
    故障模組名稱:JavaIC.dll
    故障模組版本:9.9.9.9
    故障模組時間戳:4f2343d6
    異常偏移:000052cb異常故障模組時間戳:4f2343d6異常偏移:000052cb
    異常代碼:c000417
    異常資料:00000000
    作業系統版本: 6.1.7600.2.0.0.768.3
    區域設定 ID:1033附加 資訊
    1:773c
    附加資訊 2:773cd78cf06816f8246f359fa270f3bbea 5cd1c3

    2. 後續運行會產生以下錯誤訊息:

    “錯誤:Java(TM) 安裝程式 - 下載的檔案 C:\Users\\AppData\Local\Temp\fx-runtime.exe 已損壞。”

    或者

  2. 什麼也沒發生。我相信這是一個轉移注意力的事情。再次執行安裝程式會導致不同的錯誤,因為檔案已下載並且安裝程式在清理之前崩潰了。這不是真正的問題,因為當發生這種情況時,安裝程式會刪除下載的文件,然後當您第三次運行它時,它會再次下載所有內容並導致 javaic.dll 崩潰。我懷疑下載程式正在附加到現有文件或其他內容,從而導致損壞。

我已經以管理員和普通用戶的身份嘗試了上述所有操作。我曾多次嘗試將系統重置為出廠預設值。我嘗試使用 Chrome 和 Internet Explorer 9 下載。唯一有差別的是在 Windows XP 相容模式下執行安裝程序,這樣可以完成安裝。

我知道我可以透過使用離線安裝程式來解決此錯誤,因此請不要將其發佈為答案。我正在尋找根本原因的解釋。此外,如果我使用離線安裝程序,更新程序將無法運作。如果我在 XP 模式下安裝,更新程式也不起作用。更新程式失敗,因為它只需下載最新的線上安裝程式並運行它即可運作。

另請記住,安裝程式是數位簽名。簽名驗證正確,因此這絕對不可能是由損壞的下載引起的。

我有一些理論:

  • java.com 上的 Java 安裝檔案實際上在第一次成功安裝和我後來的嘗試之間發生了變化。似乎不太可能,因為版本號碼都沒有改變。不過,我在過去 24 小時內看到了一些有關此錯誤的報告。 這看起來是目前最有可能的解釋:http://www.oracle.com/us/corporate/press/1735645- Oracle 兩天前發布了 7 更新 6。仔細檢查安裝程式後發現,他們實際上是在嘗試下載 .6,而不是下載頁面聲稱的 0.5。其實不正確。只有更新工具會嘗試安裝 7u6。線上安裝程式仍然嘗試 7u5。然而,兩天前發布的 7u6 實在是太巧合了,不容忽視。更新:7u6 線上安裝程式可從 Oracle technetwork 取得。它以完全相同的方式崩潰。

  • 恢復出廠設定軟體使用的是 GMT-8,而我使用的是 GMT-1。結果,在恢復出廠設定後,任何關心檢查的軟體都會認為系統在未來 7 小時後恢復,這是由於 Window 將本地時間儲存在系統時鐘中的糟糕策略。這可能會混淆證書檢查或類似內容。更新:我發現這確實會導致 Windows 更新失敗。解決方法是在開始恢復出廠設定之前將時脈調回,但無法正確安裝 Java。

  • 恢復原廠設定的映像與您購買系統時安裝在主分割區中的映像並不相同。頑皮的聯想。

  • 安裝程式在安裝或顯示與 Ask.com 工具列相關的內容時似乎崩潰。這似乎就是 javaic.dll 的作用。

  • 微軟星期二是 14 日。其中的一些更新可能會導致此問題。但是,我每次都會將機器重置為出廠設置,因此除非補丁被整合到恢復映像中,或者存在某種機制即使禁用更新也可以靜默安裝它們,否則我不明白這是怎麼回事原因。

主要突破:

Lenovo 系統上的預設瀏覽器是 Google Chrome。我注意到 JavaIC.dll「贊助商檢查」實際上會檢查您的預設瀏覽器,以便決定顯示哪個贊助商廣告。通常,這會讓您在 IE9 上獲得「詢問」工具列。但該工具列在 Chrome 上不起作用,因此安裝程式會嘗試顯示不同的廣告。不同的廣告是導致崩潰的原因。將預設瀏覽器變更為 IE9 可以使安裝程式正確運作。因此,這看起來像是安裝程式中贊助商廣告代碼中的真正錯誤,是由 Google Chrome 預設瀏覽器和不在美國的組合引起的。 (安裝程式也會使用 IP 地理定位服務檢查您的位置,並據此顯示不同的廣告。)

答案1

我現在已經找到了解決此問題的方法。恢復出廠設定後、安裝 Java 之前,請先執行下列步驟:

  1. 開啟 Google Chrome 並接受條款和條件,然後退出。
  2. 開啟 Internet Explorer 9。按一下“是”,然後退出。
  3. 開啟谷歌瀏覽器。它會詢問您是否要將其用作預設瀏覽器。說“是”。

現在您可以使用任一瀏覽器中的線上更新程式下載並安裝 Java,它應該可以正常工作。

至於原因,似乎是聯想工廠鏡像使用非標準方法將Google Chrome設定為預設瀏覽器。 JavaIC.dll 必須讀取不存在或類似的登錄值,導致其因緩衝區溢位而崩潰(更可能是零長度緩衝區)。

答案2

你沒有提到一些更嚴厲的措施:

  • 停用資料執行保護
  • 以XP相容模式運行

嘗試從您的錯誤報告中谷歌搜尋 4f2343d6,還有其他人也遇到同樣的問題。這被理解為DEP造成的。

要停用 DEP,請點擊我的電腦->屬性->進階->效能->設定->效能選項->資料執行保護。重啟。

相關內容