运行Java会出现“错误:无法打开`C:\ Program Files \ Java \ jre6 \ lib \ amd64 \ jvm.cfg'”

时间:2011-05-17 20:07:39

标签: java scala

经过多年的努力工作,我在尝试启动JVM时突然收到此消息:

Error: could not open `C:\Program Files\Java\jre6\lib\amd64\jvm.cfg'

我尝试卸载,并收到一条消息,指出DLL丢失(未指定) 尝试重新安装,都无济于事。

同时,当我尝试启动Scala时,我得到了:

\Java\jdk1.6.0_25\bin\java.exe was unexpected at this time.

选中%JAVA_HOME%%path% - 两者都好

有人可以帮忙吗?

21 个答案:

答案 0 :(得分:80)

我检查了我的环境变量 - JAVA_HOME& PATH和它们都引用C:\ java。所以这有点令人沮丧。过了一段时间后,我发现默认安装还将java.exe,javaw.exe和javaws.exe复制到C:\ Windows \ System32(即卸载JRE并不顺利)。我刚刚删除它们,瞧,我又回到正轨。那个恼人的错误不再弹出。

这对我有用

因此,如果存在,请从System32中删除java.exe,javaw.exe和javaws.exe

答案 1 :(得分:30)

将%JAVA_HOME%\ bin放在PATH的开头。

答案 2 :(得分:16)

可能是一个稍微不同的原因,但第二个问题出现在Win7(x64)上的scala 2.9.0.1中,尽管scala-2.9.1.final已经解决了这里提到的这个问题:

\Java\jdk1.6.0_25\bin\java.exe was unexpected at this time.

我的%JAVA_HOME%设置为这样的路径:c:\program files (x86) \Java\jdk...

注意空格和括号。

如果您更改%SCALA_HOME%\bin\scala.bat中的第24行:

if exist "%JAVA_HOME%\bin\java.exe" set _JAVACMD=%JAVA_HOME%\bin\java.exe

if exist "%JAVA_HOME%\bin\java.exe" set "_JAVACMD=%JAVA_HOME%\bin\java.exe"

工作正常。请注意set命令参数周围的引号,这将在变量的值中正确包含任何空格和“特殊”字符(例如:空格和括号)。

希望这有助于其他人寻找答案。

答案 3 :(得分:8)

我遇到了同样的问题:我有64位Windows,当我在CMD-Console中键入“java -version”时,我收到了相同的错误消息。 尝试启动64位cmd(C:\ Windows \ SysWOW64 \ cmd.exe),你会看到它在那里工作;)

答案 4 :(得分:2)

突然出现同样的问题,从一天到另一天的日食说了

Failed to load the JNI shared library "C:/JDK/bin/client/jvm.dll"`.
尝试在控制台上运行java后

Error: could not open `C:\WINDOWS\jre\lib\amd64\jvm.cfg' 

现在我刚刚删除了整个目录

C:\WINDOWS\jre

一切都恢复了......我不知道这个jre来自哪里,我希望它不是病毒

答案 5 :(得分:2)

我对这个问题的解决方案略有不同。我的PATH和JAVA_HOME指向

中的JDK12
C:\Program Files\Java

但执行命令:

Java -version

给出错误:

Error: could not open `C:\ProgramFiles\Java\jre1.8.0_212\lib\amd64\jvm.cfg'

我不得不在与System32不同的目录中删除可执行文件(Java.exe,javaw.exe等)的文件夹,如此处的其他答案和博客所建议的那样。相反,我发现该问题与以下位置的可执行文件有关:

C:\Program Files\Common Files\Oracle 

因为

中没有与Java相关的内容
C:\Windows\System32

如果遇到此问题,而System32中没有任何内容,请检查上面提到的此“公共文件”目录中的oracle目录,然后将其删除。

之后,您的PATH引用应该可以正常工作!

答案 6 :(得分:2)

如果之前有效,则表示PATH不再正确。

PATH变得太长而被截断时,就会发生这种情况 所有帖子(如this one)都建议updating the PATH,您可以先在单独的DOS会话中测试,方法是设置最小路径并查看java是否再次在那里工作。


最后OP Highland Mark得出结论:

  

最后通过卸载java修复,从注册表中删除对它的所有引用,然后重新安装。

可怕的;)

答案 7 :(得分:2)

我的工作PC上的Java 7安装在一个补丁被强制发送给我们后破了,在你试图运行Java程序的任何时候都会出现这个错误。不知何故,Java 7安装的整个'lib'子目录都消失了!可能与安装Java 6和Java 7有关 - 'jre6'目录仍然包含所有内容。

在任何情况下,我通过卸载Java 6和Java 7并重新安装Java 7来修复它。但是如果它抱怨的文件实际上存在,那么你可能会遇到路径问题,如某些其他答案在这里。

答案 8 :(得分:2)

我想我会分享我如何解决同样的问题“错误无法打开lib \ amd64 \ jvm.cfg”。我发现Java运行时Jre7缺少lib下的amd64文件夹。但是,我有1.7.0_25 JDK,它有jre文件夹,也有amd64。

我将jre7文件夹的原始内容移动到备份文件并复制了1.7.0_25 \ jre中的所有内容。

现在我不再收到此错误,并且可以继续使用场景构建器。

答案 9 :(得分:1)

  • 我在Windows 2008R2Java 1.7.0_15

  • 上遇到了类似的问题(尝试在Windows上启动Jenkins从属代理)
  • 我有两种情况导致了这个问题,改变这两种情况就解决了这个问题:

    1)在Java兼容路径中安装unix(从c:\Program Files\... to c:\Software\...更改);我认为这不会直接影响此线程中描述的问题,但会注意到更改;

    2)不通过快捷方式运行Java。它最初失败了,但是直接可执行文件(re-running)中的C:\Software\Java...\bin\java工作正常。

答案 10 :(得分:1)

我在 Eclipse 中遇到了同样的问题,我通过将 JRE 从64位更改为 32位来修复它:

窗口>偏好> Java>已安装的JRE>添加...>下一个>目录>选择“C:\ Program Files(x86)\ Java \ jre1.8.0_65”而不是“C:\ Program Files \ Java \ jre1.8.0_60”

答案 11 :(得分:1)

C:\ ProgramData \ Oracle \ Java \ javapath为我工作..,我已经备份了文件并删除了文件。打开了新的cmd提示然后..测试并且像魅力一样工作

答案 12 :(得分:0)

另一种解决方法是在Windows中使用短路径:

  1. 使用cmd.exe打开Windows命令控制台
  2. 转到c:\
  3. type command> dir program* /x
  4. 它应显示为:PROGRA~2
  5. 之类的短路径
  6. 因此C:\PROGRA~2C:\Program Files (x86)
  7. 相同
  8. 在您的JAVA_HOME替换路径中: C:\PROGRA~2\Java\jre7
  9. 这应该适用于Windows 64环境,因为它适用于win7 64位版本。

答案 13 :(得分:0)

我已将java安装路径从c:\Program Files (x86)\java更改为另一个文件夹,例如c:\java\jdk1.7,并相应地更新了%Java_HOME%和路径值,这是有效的。

例如

%JAVA_HOME% = C:\java\JDK1.7

path-C:\java\JDK1.7\bin; 

答案 14 :(得分:0)

更新你的java之后我遇到了这个问题。解决此问题的最佳方法是转到c:/ProgramFiles/Java文件夹。在那里你会发现两个jre文件夹,一个是jre.your版本,另一个与jdk文件夹完全相同。尝试删除jre.1.your版本文件夹。你去了你的问题解决了。希望这可能有所帮助。它对我有用。

答案 15 :(得分:0)

通常是因为升级JRE。

它将符号链接更改为C:\ ProgramData \ Oracle \ Java \ javapath \

Intall JDK - 它将解决这个问题。

答案 16 :(得分:0)

FileKt

由于我正在使用更新jdk8 1.8.0_191,因为我在安装Java更新后发生了该问题,并且自动发生了此问题,因此出现了@post安装脚本的问题并不断传播。

connect

在这种情况下,这将永远不会结束,需要做一些解决方法,例如手动更改路径。

答案 17 :(得分:0)

重新安装java对我没有帮助。但是把JAVA_HOME变量放在env-vars开头的技巧。从jdk1.7.0_11升级到jdk1.7.0_13

后出现问题

答案 18 :(得分:0)

删除system32下Windows的jar。 删除C:\ Program Files \ Common Files \ Oracle

下的jar

将环境变量set JAVA_HOME和SET PATH设置为bin

答案 19 :(得分:-1)

它不在路上。最后通过卸载java修复,从注册表中删除对它的所有引用,然后重新安装。没有更聪明,但又恢复了工作。谢谢所有@Highland Mark-你能告诉我从注册表中删除引用的过程。我尝试了人们提到的所有可能的方式,没有任何效果。

答案 20 :(得分:-1)

如果您已下载了多个Jdk,则必须删除除要使用的JDK之外的所有内容!