題 JDK8安裝程序在Windows 10上以0xC0000005退出


當我嘗試將JDK從8u162升級到8u172時,就發生了這種情況。我發現所有8u162,8u171和8u172安裝程序都退出了代碼 0xC0000005,但這只發生在JDK 8中。可以成功安裝JDK 10.0.1。

以下是Visual Studio的轉儲文件分析:

Dump Summary
------------
Dump File:  jdk-8u172-windows-x64.exe.10568.dmp : C:\Users\CNife\AppData\Local\CrashDumps\jdk-8u172-windows-x64.exe.10568.dmp
Last Write Time:    2018/4/21 21:54:54
Process Name:   jdk-8u172-windows-x64.exe : C:\Users\CNife\AppData\Local\Temp\jds301015.tmp\jdk-8u172-windows-x64.exe
Process Architecture:   x64
Exception Code: 0xC0000005
Exception Information:  The thread tried to read from or write to a virtual address for which it does not have the appropriate access.
Heap Information:   Not Present

System Information
------------------
OS Version: 10.0.16299
CLR Version(s): 

Modules
-------
Module Name Module Path Module Version
----------- ----------- --------------
jdk-8u172-windows-x64.exe   C:\Users\CNife\AppData\Local\Temp\jds301015.tmp\jdk-8u172-windows-x64.exe   8.0.1720.11
ntdll.dll   C:\Windows\System32\ntdll.dll   10.0.16299.334
kernel32.dll    C:\Windows\System32\kernel32.dll    10.0.16299.15
KERNELBASE.dll  C:\Windows\System32\KERNELBASE.dll  10.0.16299.371
apphelp.dll C:\Windows\System32\apphelp.dll 10.0.16299.98
ole32.dll   C:\Windows\System32\ole32.dll   10.0.16299.371
combase.dll C:\Windows\System32\combase.dll 10.0.16299.15
ucrtbase.dll    C:\Windows\System32\ucrtbase.dll    10.0.16299.248
rpcrt4.dll  C:\Windows\System32\rpcrt4.dll  10.0.16299.371
bcryptPrimitives.dll    C:\Windows\System32\bcryptPrimitives.dll    10.0.16299.98
gdi32.dll   C:\Windows\System32\gdi32.dll   10.0.16299.15
gdi32full.dll   C:\Windows\System32\gdi32full.dll   10.0.16299.98
msvcp_win.dll   C:\Windows\System32\msvcp_win.dll   10.0.16299.248
user32.dll  C:\Windows\System32\user32.dll  10.0.16299.125
win32u.dll  C:\Windows\System32\win32u.dll  10.0.16299.15
sechost.dll C:\Windows\System32\sechost.dll 10.0.16299.15
shell32.dll C:\Windows\System32\shell32.dll 10.0.16299.371
msvcrt.dll  C:\Windows\System32\msvcrt.dll  7.0.16299.125
cfgmgr32.dll    C:\Windows\System32\cfgmgr32.dll    10.0.16299.15
SHCore.dll  C:\Windows\System32\SHCore.dll  10.0.16299.15
windows.storage.dll C:\Windows\System32\windows.storage.dll 10.0.16299.371
advapi32.dll    C:\Windows\System32\advapi32.dll    10.0.16299.371
shlwapi.dll C:\Windows\System32\shlwapi.dll 10.0.16299.15
kernel.appcore.dll  C:\Windows\System32\kernel.appcore.dll  10.0.16299.15
powrprof.dll    C:\Windows\System32\powrprof.dll    10.0.16299.15
profapi.dll C:\Windows\System32\profapi.dll 10.0.16299.15
oleaut32.dll    C:\Windows\System32\oleaut32.dll    10.0.16299.15
crypt32.dll C:\Windows\System32\crypt32.dll 10.0.16299.15
msasn1.dll  C:\Windows\System32\msasn1.dll  10.0.16299.15
version.dll C:\Windows\System32\version.dll 10.0.16299.15
msi.dll C:\Windows\System32\msi.dll 5.0.16299.309
bcrypt.dll  C:\Windows\System32\bcrypt.dll  10.0.16299.125
imm32.dll   C:\Windows\System32\imm32.dll   10.0.16299.15

我很高興地宣布這個問題已經解決了!請下來查看我的答案。 謝謝你的幫助!


5
2018-04-21 14:09


起源


你能否提交一份錯誤報告? bugreport.java.com/bugreport 有這些細節?如果您有轉儲文件,它可以提供診斷問題所需的數據。 - Alexey Ivanov
你是怎麼解決的?在答案中發布您的步驟。 - magicandre1981


答案:


我很高興發現為什麼我無法在Windows 10上安裝JDK8。

真正的原因是我的Windows上安裝了一個破壞的JDK8。升級到8u162時,JDK安裝程序並未完全刪除此版本8u152的安裝。因此,當我嘗試將8u162升級到8u172時,錯誤的註冊表值總是導致失敗。

當我嘗試通過Visual Studio Installer安裝JDK時,我找到了真正的原因。毫不奇怪,它使用相同的代碼0xC0000005失敗了。與JDK安裝程序不同,Visual Studio Installer會保留詳細的安裝日誌。在日誌的尾部,我發現了以下幾行:

[2018/04/25 23:19:10.371, jdk-8u161-windows-i586.exe (PID: 12756, TID: 12572), JavaEnvironment.cpp:473 (JavaEnvironment::detect)]
TRACE: Entering JavaEnvironment::detect
[2018/04/25 23:19:10.386, jdk-8u161-windows-i586.exe (PID: 12756, TID: 12572), JavaEnvironment.cpp:490 (JavaEnvironment::detect)]
TRACE: Installed Java detected: version=1.8.0; arch=64; productCode={64A3A4F4-B792-11D6-A78A-00B0D0180152}; type=1
[2018/04/25 23:19:10.386, jdk-8u161-windows-i586.exe (PID: 12756, TID: 12572), JavaEnvironment.cpp:140 (`anonymous-namespace'::detectHomeDir)]
TRACE: Find home dir of {64A3A4F4-B792-11D6-A78A-00B0D0180152} Java installation
[2018/04/25 23:19:10.402, jdk-8u161-windows-i586.exe (PID: 12756, TID: 12572), JavaEnvironment.cpp:154 (`anonymous-namespace'::detectHomeDir)]
WARNING: Unexpected empty value of [InstallLocation] product property of {64A3A4F4-B792-11D6-A78A-00B0D0180152} Java installation. Fall back to heuristic home directory detection.
[2018/04/25 23:19:10.402, jdk-8u161-windows-i586.exe (PID: 12756, TID: 12572), JavaEnvironment.cpp:162 (`anonymous-namespace'::detectHomeDir)]
TRACE: Try home directory from [ProductIcon] product property of {64A3A4F4-B792-11D6-A78A-00B0D0180152} Java installation.
[2018/04/25 23:19:10.419, jdk-8u161-windows-i586.exe (PID: 12756, TID: 12572), JavaEnvironment.cpp:191 (`anonymous-namespace'::detectHomeDir)]
TRACE: Try home directory from [Readme] registry value of {64A3A4F4-B792-11D6-A78A-00B0D0180152} Java installation.
[2018/04/25 23:19:10.455, jdk-8u161-windows-i586.exe (PID: 7320, TID: 13960), FileUtils.cpp:603 (FileUtils::`anonymous-namespace'::deleteFileImpl)]
TRACE: Deleted [C:\Users\CNife\AppData\Local\Temp\jds1029609.tmp\jdk-8u161-windows-i586.exe] file
[2018/04/25 23:19:10.459, jdk-8u161-windows-i586.exe (PID: 7320, TID: 13960), FileUtils.cpp:654 (FileUtils::deleteDirectory)]
TRACE: Deleted [C:\Users\CNife\AppData\Local\Temp\jds1029609.tmp] directory

它表明我已經有一個JDK8安裝,我找不到!

所以一切都很簡單,我下載了一個微軟的官方工具: 修復阻止程序被安裝或刪除的問題

在未安裝的軟件列表中,找到了“Java 8 Update 152(64位)”。點擊“下一步”將完全刪除它。然後我雙擊8u172的安裝程序,它工作了!


2
2018-04-25 15:59



+1奇怪的問題,很高興您找到了它的修復程序。 - magicandre1981


異常_Access_Violation中的0xC0000005錯誤點
如果用戶在該進程下沒有管理權限,則可能會發生這種情況
或者軟件在安裝過程中會導致問題。

您可以暫時禁用UAC。

由於在Windows Vista或Windows 7操作系統上啟用了用戶帳戶控制(UAC)功能,因此可以看到此問題。

默認情況下,Windows Vista和Windows 7中啟用了UAC,因此,您可能會遇到一些與Windows UAC組件尚未更新的應用程序的兼容性問題

暫時禁用UAC可能會解決異常訪問問題,但是,關閉UAC會降低系統的安全性。我們不建議禁用UAC。


-3
2018-04-21 21:20



謝謝你的建議,但它沒有同樣的原因。 - CNife
您可能想查看更新的帖子。我不知道您是否收到有關superuser.com上編輯的通知 - Nurudin Imsirovic
對不起,但關掉我的UAC沒辦法。 - CNife