2012-02-16 33 views
15

爲什麼我得到這個?我該如何解決它?檢查Java版本時出錯:找不到java.dll

C:\Users\ash>java version 
Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion' 
has value '1.7.0_01', but '1.7' is required. 
Error: could not find java.dll 
Error: Could not find Java SE Runtime Environment. 
+2

'java version'有效嗎?因爲我使用'java -version'。 – sgowd 2012-02-16 14:50:06

回答

9

重新安裝JDK並在您的JDK上設置系統變量JAVA_HOME。 (例如C:\工具\ JDK7)
和JAVA_HOME變量添加到您的PATH系統變量

鍵入命令行檢查

echo %JAVA_HOME% 

java -version 

:在安裝傳遞是否正常

+2

是不是變量值的JAVA_HOME應該是JRE?-https://confluence.atlassian.com/display/DOC/Setting+the+JAVA_HOME+Variable+in+Windows – committedandroider 2014-12-16 06:59:37

+0

你可以顯示這些步驟更多的細節爲初學者?謝謝 – 2018-01-09 16:03:16

1

您可能會在64位環境中使用32位版本的Java。 導出註冊表配置單元格式HKLM \ Software \ JavaSoft並導入到HKLM \ Software \ Wow6432Node \ JavaSoft。對於1.6,我只需要JavaHome和RuntimeLib值。

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Javasoft] 

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Javasoft\Java Runtime Environment] 
"CurrentVersion"="1.6" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Javasoft\Java Runtime Environment\1.6] 
"JavaHome"="C:\\Java\\jre" 
"RuntimeLib"="C:\\Java\\jre\\bin\\client\\jvm.dll" 
21

重新安裝所有JDK的可接受解決方案有點苛刻。 我也經歷過這個問題,這裏是我的2美分:

自從我安裝了JDK 8並且仍安裝了JDK 6後,此問題就開始發生。我需要爲我正在開發的不同項目。

我注意到我有一個用戶和一個系統%JAVA_HOME%,所以我刪除了我的用戶%JAVA_HOME%變量,只留下系統之一。

我還注意到在我的Oracle安裝中有一些Java可執行文件,我相信那些衝突的地方,因爲我的Oracle和Java安裝都在我的%PATH%變量中。

我從我的%PATH%變量中刪除了所有Java路徑,並且只在變量的起始處保留了%JAVA_HOME%\bin以避免與Oracle安裝發生衝突。

+1

解決了我的問題。到同一個Java.exe文件的不同路徑導致此問題。這可能是因爲其他Java安裝,但不一定。在我的情況下,我的路徑中的一個Oracle軟件有它自己的java.exe。 – 2015-07-09 18:29:12

+2

很好的答案。我有完全相同的問題,因爲第二個原因:* bin *的路徑不是第一個java路徑。我把它設置爲第一個並且是固定的。 – Eagle 2016-04-07 08:44:56

+1

這應該是一個被接受的答案。 – leventov 2016-06-25 10:51:23

4

安裝java 1.8後出現類似問題。

爲了解決這個問題去推進系統設置 - >路徑和刪除

C:\ ProgramData \ ORACLE \的Java \ javapath;

1

我編輯了我的路徑,將Oracle JDK放在路徑的開始部分,並修復了它。

0

我從PATH變量中刪除了「C:\ Program Files(x86)\ Heroku \ bin」,問題消失了。我認爲這可能是Heroku需要不同版本的Java。因此,檢查PATH變量中的所有目錄,刪除可能有衝突的目錄。