Eclipse错误:“无法创建Java虚拟机”


211

在Windows 7上启动Eclipse Helios时出现以下错误消息:

创建Java虚拟机失败

在此处输入图片说明

我的eclipse.ini如下所示:

-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
-vm
P:\Programs\jdk1.6\bin
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms120m
-Xmn100m
-Xmx1024m

据我所知,我的JAVA_HOME已正确设置。我怎样才能解决这个问题?

到目前为止我尝试过的事情:

  1. 将完整路径添加到javaw.exe -vm P:\Programs\jdk1.6\bin\\bin\javaw.exe
  2. -vm完全删除该选件
  3. 删除--launcher.XXMaxPermSize可解决此问题,但会导致烫发错误
  4. 卸下值512--launcher.XXMaxPermSize修复问题,但它会导致PermGen的错误
  5. 减少-Xmx512m也可以解决此问题。

为什么我不能将'1024m'用于'-Xmx'和'--launcher.XXMaxPermSize'?


18
这意味着jvm无法在您的计算机中分配所需的内存空间(1024 + 512)。
凯恩

因此,请确认我正确理解了这一点。JVM将分配(XXMaxPermSize + Xmx)
Maro

2
启动vm时,它不会立即创建具有最大堆大小(由-Xmx指定)的内存。但是它可以确保启动vm时能够在运行时创建最大堆大小。如果没有,则无法创建虚拟机。
凯恩

我不知道为什么,但是在我的机器上,只有运行Dragon NaturallySpeaking时Eclipse才会出现此问题。RonQi的解决方案为我工作。
–'rob

@rob:这可能是因为Dragon使用了大量内存。此问题的原因似乎是JVM无法分配足够的内存。
Stijn de Witt

Answers:


80

尝试删除-vm P:\Programs\jdk1.6\bin线。


另外,一般建议:set -Dosgi.requiredJavaVersion=1.6,而不是1.5


52
在eclipse.ini中,将-Xmx从1024减小为512m可以解决此问题。系统具有1GB RAM。
德克斯特2014年

3
@dexter,谢谢,它对我有用,因为它减少了Xmx
danisupr4

对于macOS eclipse-2020,在eclipse.ini中的“ --launcher.appendVmargs”下面添加:“-vm” /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/bin/java。
克拉克

283

1.eclipse.ini从eclipse文件夹中打开文件,请参见下图。

eclipse.ini

2.eclipse.iniNotepad或任何其他text-editor应用程序中 打开,找到该行-Xmx256m(或-Xmx1024m)。现在将默认值256m(或1024m)更改为512m。您还需要提供确切的Java安装版本(1.6或1.7或其他版本)。

最大尺寸

像这样:

-Xmx512m
-Dosgi.requiredJavaVersion=1.6

要么

-Xmx512m
-Dosgi.requiredJavaVersion=1.7

要么

-Xmx512m
-Dosgi.requiredJavaVersion=1.8

然后对我来说效果很好。


8
仅当问题是内存不足并且您降低了eclipse.ini中的值时,这才起作用。提升它们只会使该问题更有可能发生。
Stijn de Witt

2
谢谢yar,我提高了这个值,并且效果很好,我想是因为我更新了JDK而发生的。
Pervez Alam

1
这实际上也对我有用-注意:ewclipse刚刚停止工作-我不得不-Xmx1024m,转向Xmx512m并开始工作。显然内存不足(?)
Mr_and_Mrs_D 2014年

在我的案例中,它无法将值从1024更改为512,但是当我再次将其更改为先前的值(即1024)时,它仍然有效。
塔兰·拉雅尔

1
哇..对于Eclipse Mars,我将-Xmx1024m更改为-Xmx512m,并且有效!
Umesh Patil

111

尝试添加

-vm
D:\Java\jdk1.6.0_29\bin\javaw.exe

仅供参考:参考sunblog

对于其他可能对Java 7有问题的人,如Eclipse Wiki-eclipse.ini vm_value(Windows示例)

这可能不适用于所有系统。如果在启动Eclipse时遇到“ Java已启动但​​返回退出代码= 1”的错误,请修改-vm参数以指向jvm.dll

例如

-vm
C:\Program Files\Java\jre7\bin\client\jvm.dll

另请注意

-vm选项必须在-vmargs选项之前出现,因为-vmargs之后的所有内容都直接传递到JVM


这很好用,但是我更喜欢使用-vm C:\ Program Files(x86)\ Java \ jre6 \ bin \ javaw.exe,因为JRE路径更可能保持稳定,尤其是当您跨一个共享Eclipse安装时多台机器/ VM。

它对我
有用

5
+1我错过了订购部分。网络上所有其他地方都在谈论-vm参数,但他们忽略了它必须在-vmargs之前发生
demongolem

在安装带有eclipse的Android SDK时遇到了相同的问题,并对此进行了修复。谢谢 !
编码科学家,

作为记录,我使用的是Windows 7 Home Premium和Server JVM 1.8.0_05,第二种方法是指向对我有用的dll,第一种方法没有。
Ironluca

26

我知道现在这已经很老了,但我遇到了同样的问题,问题是我分配了太多的内存以使其无法容纳。因此,打开eclipse.ini并降低分配给-Xmx XXMaxPermSize我的内存量,将我的更改为-Xmx512mXXMaxPermSize256m


这是在32位计算机上吗?因为我相信在32位Windows上可以使用多少内存是有限制的
-Maro

@Maro是的。希望升级到64位。
Popeye 2012年

1
为我工作,用-Xmx参数上的512m替换了768m。
塔塔克

我在具有8GB内存的64位计算机上,但仍将-Xmx = 768m与-XX:PermSize = 256m和-XX:MaxPermSize = 512m结合使用被证明是太多了。它是32位Java,因此它只能“使用” 4GB,但实际使用中的最大值似乎要低得多。我希望这需要1024m的起始时间和1280m的最大值...
Stijn de Witt

谢谢,我确定几个月前将其更改为1024,以解决该问题。这个问题的真正答案是转移到Android Studio,这要好得多。我之所以回到Eclipse是因为我没有迁移过较早的应用程序之一,而是需要做一些事情。
瑞安·海特纳

18
  1. eclipse.ini从eclipse文件夹中打开文件。

  2. 它具有一些附加配置。找到这条线–launcher.XXMaxPermSize。现在删除默认值256m并保存。


18

我删除了eclipse.ini。我遇到了这个问题,删除ini文件解决了它。


12
  1. 使用Eclipse.exe打开文件夹并找到eclipse.ini文件
  2. 用当前的javaw.exe真实路径替换-vmargs:* -vm“ c:\ Program Files \ Java \ jdk1.7.0_07 \ bin \ javaw.exe” *

    -startup
    plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
    --launcher.library
    plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120522-1813
    -product
    com.android.ide.eclipse.adt.package.product
    --launcher.XXMaxPermSize
    256M
    -showsplash
    com.android.ide.eclipse.adt.package.product
    --launcher.XXMaxPermSize
    256m
    --launcher.defaultAction
    openFile
    **-vm “c:\Program Files\Java\jdk1.7.0_07\bin\javaw.exe”** 
    -Dosgi.requiredJavaVersion=1.6
    -Xms40m
    -Xmx768m
    -Declipse.buildId=v21.1.0-569685
    

9

您也可以通过删除“ -launcher.XXMaxPermSize”行下的值“ 256m”来解决此问题。


为我工作。尽管即使有该值,它在Windows注销然后登录后也可以正常工作。
2013年

9

我找到了一个非常简单的解决方案。只是删除eclipse.ini文件,但先备份。我有多次相同的问题,最后我删除了此问题,而我再也没有问题了。

这也增加了加载时间。现在,我的Eclipse的启动速度比以前更快。


删除eclipse.ini之后,出现此错误,尝试启动Eclipse => eclipse执行启动器无法找到其伴侣共享库
NIKHIL CHAURASIA

太棒了!我尝试了很多步骤来编辑ini文件。但是这个答案很棒。有用。干杯!
边缘

7

STS.conf文件中,您需要检查两个重要事项,以避免创建/分配jvm问题

1.给出确切的jdk安装位置:

--vm C:\Program Files\Java\jdk1.7.0_01\jre\bin\javaw.exe

2.您需要提供确切的Java安装版本:

--Dosgi.requiredJavaVersion=1.7

3.尝试减小内存大小:

--XX:MaxPermSize=256m

7
  1. 打开eclipse安装文件夹中的ecplise.ini文件。

  2. 查找并用-vm D:\ jdk1.6.0_23 \ bin \ javaw.exe替换-vmargs行,或者只是删除-vmargs行并保存。现在问题已经解决了


2
谢谢@Rajas删除了-vmargs行并保存了它对我有用
Bernauer

5

在尝试了上述减少内存的解决方案之后,Eclipse开始工作,但是每次从工作区特别从处加载插件时都会挂起org.eclipse.debug.core

我在这里找到了解决方案,Eclipse挂在了Splash Screen上,想要共享它。希望它也可以帮助其他人。


不像我在过去一个小时内尝试过的其他任何事情,这很有效,谢谢!
贾斯汀T.

无效链接,您还有机会吗?
亚当·帕金

4

确保eclipse.ini在vmargs之前没有多个条目并使用了vm条目:

-vm
  D:/java/jdk1.8.0_65/bin/javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-XX:+UseG1GC
-XX:+UseStringDeduplication
-Dosgi.requiredJavaVersion=1.8
-Xms256m
-Xmx1024m

3

试试这个:

-startup plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar 
--launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.2.R36x_v20101222 
-showsplash org.eclipse.platform 
--launcher.XXMaxPermSize 256m 
--launcher.defaultAction openFile 
-vm F:\Program Files\jdk1.6\bin\javaw.exe 
-vmargs 
-Xms512m 
-Xmx512m 
-XX:+UseParallelGC 
-XX:PermSize=256M 
-XX:MaxPermSize=512M

3

快速解决:

eclipse.ini中更改-Xmx1024m为(存在于同一级别的文件)。它会像魅力一样工作。-Xmx512meclipse.exe


3

解决此问题的简单方法是删除或重命名eclipse.ini文件。请先尝试。如果此方法不能解决您的问题,请尝试以下解决方案。

其他修复方法:

解决方案1

eclipse.ini文件中添加一个字符串,以更改文件的目的地javaw.exe。最主要的是,该字符串必须放在字符串“ -vmargs”上方!

-vm
C:\Program Files\Java\jdk1.6.0_22\bin\javaw.exe 

解决方案2

删除值–launcher.XXMaxPermSize,例如256m

解决方案3

删除或减小Xms和Xmx的值:

-Xms384m 
-Xmx384m


3

在eclipse.ini中添加-vm后,如下所示对我有用。在-vmargs不删除之前添加它

-vm
C:\apps\Java\jdk1.8.0_92\bin\javaw.exe
-vmargs

有一个jdk更新导致了此问题。


2

这为我工作:

我关闭了Windows 7计算机上的所有其他内存密集型应用程序。我尝试打开Eclipse,瞧,它起作用了。


2

有时候不是你的eclipse.ini ; 是您的JDK崩溃了。您可以通过在命令提示符下编写以下命令来检查它:

c:\> java -version

如果此命令显示以下错误:

Error occurred during initialization of VM

java/lang/NoClassDefFoundError: java/lang/Object

然后先卸载JDK,然后重新安装。

Eclipse将再次发挥作用;)就像今天一样,我遇到了同样的问题,上述内容由Itachi Uchiha提出。


2

遇到我的Eclipse质子无法启动时的问题。得到错误“无法创建Java虚拟机”

下面添加到eclipse.ini文件中

-vm
C:\Program Files\Java\jdk-10.0.1\bin\javaw.exe


1

将参数大小减小到-256

看到我的eclipse.ini文件

    -startup
   plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
   --launcher.library
  plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502
  -product
   org.eclipse.epp.package.jee.product
   --launcher.defaultAction
   openFile
   --launcher.XXMaxPermSize
   256M
  -showsplash
   org.eclipse.platform
   --launcher.XXMaxPermSize
   256M
  --launcher.defaultAction
  openFile
  -vmargs
  -Dosgi.requiredJavaVersion=1.6
  -Xms40m
  -Xmx512m

1

解决此问题的正确方法是在ini fie中添加指向您Java文件夹的jvm.dll文件的-vm行。

-vm
C:\Program Files\Java\jre1.8.0_202\bin\server\jvm.dll
/*there is no dquote for path, and path points to right java version folder mentioned in ini file*/

如果上述修复没有成功,则不要尝试任何其他操作。该线程中的大多数建议都是错误的。这些黑客中的一些可能暂时起作用或在某些机器配置上起作用,但是eclipse.ini的内容并非无关紧要。有关权威参考,请参见以下[wiki页面]:https : //wiki.eclipse.org/Eclipse.ini#Specifying_the_JVM,它解释了文件的内容。另外,请注意该页面底部的另请参阅链接,以获取有关堆大小等内容的更多详细信息。请勿删除eclipse.ini,永远。也不建议删除-vm或Xmx选项。如果这样做,那就是自找麻烦。

以下是Wiki页面中与您的问题有关的参考:

参考_1

参考_2


1
一个简单但重要的品脱:-vm必须放在eclipse.ini中的option 之前 -vmargs
伍德兹


0

解决问题的步骤:-

  1. 从eclipse文件夹中打开eclipse.ini文件。

  2. 它具有一些附加配置。找到–launcher.XXMaxPermSize行。它将是此文件的最后一行。现在,删除/删除默认值256m并保存。



0

我遇到了同样的问题,并且找到了解决方案。MaxPermSize的分配存在问题。如果您尝试分配超出计算机可用空间的空间,则会在我的问题中出现此错误。因此,请尝试减少MaxPermSize。

我认为这将帮助您解决问题。


0

所有这些解决方案使我失败了。在使用Eclipse六个月之后,这突然发生了。似乎我的JDK损坏了。

我最终的解决方案是下载一个更新的JDK并相应地更新我的JAVA_HOME,对于我来说,从jdk1.6.0_37到jdk1.6.0_43。


0

@Maro对我来说,它非常简单!

在收到错误消息警报后,我从命令提示符处执行了“ eclipse c .exe”。这打开了Eclipse。然后我再次尝试使用“ eclipse.exe”,现在它运行良好。

不幸的是,它没有给出任何技术原因。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.