簡體   English   中英

如何使Windows XP計算機停止嘗試使用已卸載的Java JDK(1.6.0_13)

[英]How do I make Windows XP machine stop trying to use uninstalled Java JDK (1.6.0_13)

我在辦公室的Windows XP工作站上安裝了幾個舊版本的Java JDK。 今天,我決定安裝最新的Java JDK並卸載較舊的Java JDK。 大錯誤!

我不明白為什么,但是XP似乎認為刪除的JDK安裝之一就是它要使用的安裝。 不知道它是否相關,但是它是JDK 1.6.0_13。 我以前是使用“控制面板”中的XP“添加或刪除程序”將其卸載的。 JDK文件夾不見了(正如人們期望的那樣),但顯然並沒有忘記。 以下是症狀:

Eclipse將不再啟動並使用我安裝的新JDK。 Eclipse的行為就像系統上沒有JDK一樣。

替代文字

當我在命令提示符下鍵入java -version ,得到以下響應:
錯誤:無法打開`C:\\ jdk1.6.0_13 \\ jre \\ lib \\ i386 \\ jvm.cfg'
哎呀,謝謝。我從沒想過找不到卸載的JDK ...

替代文字

在機器上搜索時,我發現了一個名為“ Java Quick Starter”的系統服務,該服務指向已刪除的JDK目錄。

替代文字

現在我知道你們中有些人可能在想什么。 他具有指向舊位置的JAVA_HOME系統變量和/或在PATH系統變量中具有舊位置。 事實並非如此! 沒有引用此舊JDK的系統變量,我的PATH也沒有。 實際上,我已經為今天早上安裝的新JDK定義了一個新的JAVA_HOME並將其添加到系統PATH中。 我確信這至少會給我帶來來自命令提示符的成功,但沒有運氣。

替代文字

而且,如果您想知道在安裝/卸載/系統變量更改后是否重新啟動,可以。


有人知道我在這里做錯了嗎? 如何從系統中清除對卸載的JDK的這些引用,以便它可以開始使用新安裝的JDK?

編輯1

我按照duffymo的建議檢查了注冊表。 HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft下有些東西看起來不正確。 我已刪除的1.6.0_13 JDK條目仍然存在,並且由於某種原因,許多較新的JDK安裝中的條目都將其JavaHome屬性設置為舊1.6.0_13 JDK的路徑!

替代文字

我卸載了計算機上的所有JDK,但是在此注冊表部分中仍然有舊版1.6.0_13 JDK的殘跡。

替代文字

另外,“添加和刪除程序”列表中仍列出了1.6.0_21 JRE,如果我嘗試將其卸載,則會出現錯誤。 該注冊表項也顯示在注冊表中,並且具有注冊表“ JavaHome”鍵,其值指向不再存在的JDK 1.6.0_13。

替代文字

替代文字

檢查注冊表,看看周圍是否有任何東西指向舊的JRE。

查看HKEY_LOCAL_MACHINE / SOFTWARE / JavaSoft。 您將在那里看到Java開發工具包和Java運行時環境。 看看他們怎么說。

既然您發現注冊表值不正確,建議您修改它們以指向正確的值,或者刪除它們,卸載JDK,然后重新安裝。

您也可以嘗試禁用啟動服務。

摘自我在www.superuser.com上對這個問題的轉發:
https://superuser.com/questions/203143/cannot-install-java-jre-on-windows-xp-workstation-possfully-due-to-previous-faile

我在注冊表上嘗試了CCleaner,但沒有解決問題。 那時我感到非常絕望,因此決定使用regedt32在注冊表中搜索“ jdk1.6.0”的實例,並刪除所有顯然是垃圾的東西。 我知道已不存在的所有對JDK / JRE實例的注冊表引用都被刪除。 通常,這意味着刪除整個鍵,但是有些鍵只需要刪除單個值/數據對。 我在可憐的無防御性注冊表上執行完肉丸手術后重新啟動。

免責聲明:我不建議任何人開始使用注冊表中的隨機密鑰作為解決問題的主要方法! 在考慮重新映像工作站並重新安裝一切之前,這是我的最后選擇。

話雖如此,這種方法確實解決了我的問題。 我能夠安裝JRE,然后類似Eclipse之類的東西再次開始正常工作。 接下來,我安裝了相同版本的JDK,沒有發生任何故障。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM