218

I am getting this error message when I start Eclipse Helios on Windows 7:

Failed to create the Java Virtual Machine

Enter image description here

My eclipse.ini looks as follows:

-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

My JAVA_HOME is correctly set as far as I can tell. How can I fix this?

Things I have tried so far:

  1. Adding the full path to javaw.exe -vm P:\Programs\jdk1.6\bin\\bin\javaw.exe
  2. Removing the -vm option altogether
  3. Removing --launcher.XXMaxPermSize fixes the issue, but it causes permgen errors
  4. Removing the value 512 of --launcher.XXMaxPermSize fixes the issue, but it causes permgen errors
  5. Reducing -Xmx to 512m also fixes the issue.

Why can I not use '1024m' for '-Xmx' and '--launcher.XXMaxPermSize'?

6
  • 18
    It means jvm can't allocate the required memory space(1024+512) in your computer. Commented Sep 5, 2011 at 2:39
  • So just to confirm I understand this correctly. The JVM will allocate the amount of memory specified by (XXMaxPermSize + Xmx) Commented Sep 5, 2011 at 2:57
  • 2
    It doesn't immediately create the memory with maximum heap size(specified by -Xmx) when starting vm. But it would make sure it has capability to create the maximum heap size in runtime when starting vm. If not, the vm can't be created. Commented Sep 5, 2011 at 5:05
  • I have no idea why, but on my machine Eclipse only has this problem when Dragon NaturallySpeaking is running. RonQi's solution worked for me. Commented Jul 17, 2012 at 5:20
  • @rob: That's probably because Dragon uses a lot of memory. The cause for this issue seems to be that the JVM cannot allocate enough memory. Commented Feb 18, 2013 at 14:14

43 Answers 43

285

1. Open the eclipse.ini file from your eclipse folder,see the picture below.

eclipse.ini

2. Open eclipse.ini in Notepad or any other text-editor application, Find the line -Xmx256m (or -Xmx1024m). Now change the default value 256m (or 1024m) to 512m. You also need to give the exact java installed version (1.6 or 1.7 or other).

max size

Like This:

-Xmx512m
-Dosgi.requiredJavaVersion=1.6

OR

-Xmx512m
-Dosgi.requiredJavaVersion=1.7

OR

-Xmx512m
-Dosgi.requiredJavaVersion=1.8

Then it works well for me.

Sign up to request clarification or add additional context in comments.

6 Comments

This will only work if the problem was not enough memory and if you lower the values in eclipse.ini. Raising them will only make this issue more probable to occur.
Thanks yar, I increased this value and it worked fine, I think it happened because I updated JDK.
This actually worked for me also - NB: ewclipse just stopped working - I had -Xmx1024m, turned to Xmx512m and worked. Apparently not enough memory was there (?)
In My Case it did not work on changing the value to 512 from 1024 but when I again changed it to the previous value i.e 1024 it worked.
Wow.. For Eclipse Mars, I changed -Xmx1024m to -Xmx512m and it worked!
|
117

Try to add

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

FYI: Refer sunblog

For others who might have problems with Java 7, as per Eclipse Wiki - eclipse.ini vm_value (windows example)

This might not work on all systems. If you encounter "Java was started but returned exit code=1" error while starting the eclipse, modify the -vm argument to point to jvm.dll

e.g.

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

Also note that

The -vm option must occur before the -vmargs option, since everything after -vmargs is passed directly to the JVM

6 Comments

This works great, but I prefer using -vm C:\Program Files (x86)\Java\jre6\bin\javaw.exe since the JRE path is more likely to remain stable, especially if you're sharing a single Eclipse installation across multiple machines/VMs.
it worked for me to but while loading eclipse is getting hanged at org.eclipse.debug.core
+1 I was missing the ordering part. All the other places on the net they talk about the -vm argument but they neglect to say it must occur before -vmargs
I was facing the same issue while installing Android SDK with eclipse and this fixed it. Thanks !
For record, I am using Windows 7 Home Premium and Server JVM 1.8.0_05, the second method, by pointing to the dll worked for me, the first method did not.
|
82

Try removing the -vm P:\Programs\jdk1.6\bin lines.


Also, a general recommendation: set -Dosgi.requiredJavaVersion=1.6, not 1.5.

5 Comments

in eclipse.ini, changing reducing -Xmx to 512m from 1024 fixed the issue for me. The system was having 1GB RAM.
@dexter, thank you, it worked for me, by decreasing Xmx
for macos eclipse-2020, add :"-vm" "/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/bin/java" below "--launcher.appendVmargs" in eclipse.ini.
@Dexter how is 1GB Ram related to 512
@WadeWatts sorry I don't recall it properly now. But I think- they system was having 1 GB RAM. If we allocate full RAM to eclipse itself, it cause problem. So reduce it to 512 MB, leaving 512 MB for other processes. Eclipse process will not cause problem then.
26

I know this is pretty old now but I have just had the same issue and the problem was I was allocating to much memory to eclipse that it could not get hold of. So open eclipse.ini and lower the amount of memory that is being allocated to -Xmx XXMaxPermSize I changed mine to -Xmx512m and XXMaxPermSize256m

5 Comments

Is this on a 32bit machine? Cause I believe there is a limit on the how much memory you can use on 32bit windows
@Maro Yes it was. Looking at getting upgraded to 64bit.
Worked for me, replaced 768m with 512m on -Xmx parameter.
I am on a 64-bit machine with 8GB of memory but still using -Xmx=768m in combination with -XX:PermSize=256m and -XX:MaxPermSize=512m proved to be too much. It is a 32 bit Java so it can 'only' use 4GB, but the max seems to be much lower in practice. I would expect this to need 1024m to start and 1280m max...
Thanks I am sure that I changed it to 1024 a few months back to get around the problem. The real answer to this question is move to Android Studio, it is much nicer. I only came back to Eclipse because I had not migrated one of my older apps and needed to do something.
21

I removed eclipse.ini. I encountered this issue and removing the ini file solved it.

Comments

18
  1. Open the eclipse.ini file from your eclipse folder.

  2. It has some of add on configuration . Find the line –launcher.XXMaxPermSize. Now remove the the default value 256m and save it.

Comments

12
  1. Open folder with Eclipse.exe and find eclipse.ini file
  2. Replace -vmargs by your current real path of javaw.exe: *-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
    

Comments

11

I found a very easy solution for this. Just delete eclipse.ini file, but backup first. I had this same problem many times and finally I deleted this and I no more have the problem.

It also increased loading time. Now my Eclipse starts faster than earlier.

2 Comments

After deleting the eclipse.ini , I am getting this error, when tried to start Eclipse => the eclipse execute launcher was unable to locate its companion shared library
awesome! i tried so many steps to edit the ini file. but this answer is great. it works. cheers!
9

You can also solve this issue by removing the value "256m" under the line "-launcher.XXMaxPermSize”.

1 Comment

Worked for me. Though even with that value there, it used to work just fine after Windows Log Off and then Log In.
8
  1. Open the ecplise.ini file which is located in the eclipse installation folder.

  2. Find & Replace the line -vmargs with -vm D:\jdk1.6.0_23\bin\javaw.exe OR just remove the line -vmargs and save it . Now the problem is getting solved

2 Comments

Thanks @Rajas just remove the line -vmargs and save it worked for me
Thanks, Confirming that this worked for me (Eclipse PHP 2021) the javaw.exe I used was the same one that ships with android studio.
7

In STS.conf file you need to check two important things to avoid create/allocate jvm issue

1. Give the exact jdk install location:

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

2. You need to give the exact java installed version:

--Dosgi.requiredJavaVersion=1.7

3. Try to reduce the memory size:

--XX:MaxPermSize=256m

Comments

5

After trying the above solution of reducing the memory, Eclipse starts working but hangs every time while loading the plugins from the work-space specially at org.eclipse.debug.core.

I found the solution here, Eclipse hangs at Splash Screen, and want share it. Hopefully it can help others as well.

2 Comments

unlike anything else I tried in the last hour, THIS worked, thanks !
Dead link, any chance you have another?
4

Try this one:

-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

Comments

4

Make sure eclipse.ini do not have multiple entry and used vm entry before vmargs:

-vm
  D:/java/jdk1.8.0_65/bin/javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.8
[email protected]/eclipse-workspace
-XX:+UseG1GC
-XX:+UseStringDeduplication
-Dosgi.requiredJavaVersion=1.8
-Xms256m
-Xmx1024m

Comments

3

Quick fix:

Change -Xmx1024m to -Xmx512m in eclipse.ini (file located at the same level where eclipse.exe is present). And it will work like a charm.

Comments

3

The simple way to fix this problem is just to delete or rename your eclipse.ini file. Try it first. If this method does not resolve your problem, try the solutions described below.

Other ways to fix it:

Solution 1

Add a string into the eclipse.ini file which change a destination of the javaw.exe file. The main thing is that this string must be placed above the string "-vmargs"!

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

Solution 2

Remove the value of –launcher.XXMaxPermSize, like 256m.

Solution 3

Remove or decrease the values of Xms and Xmx:

-Xms384m 
-Xmx384m

1 Comment

For eclipse neon it will take the path till C:\Program Files\Java\jdk1.6.0_22\bin\.
3

This may work:

Open eclipse.ini file and paste below lines at the end of the lines.

-vmargs
-Xms40m
-Xmx512m
-XX:MaxPermSize=256m

Comments

3

After adding -vm in eclipse.ini as shown below worked for me. Add it before -vmargs do not remove it

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

There was a jdk update which was causing this issue.

Comments

3

The proper solution to your problem is to add the -vm line pointing to jvm.dll file of your Java folder in ini fie.

-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*/

If the above fix is not fruitful, then do not attempt anything else. Most of the advice in this thread is misguided. Some of these hacks might work temporarily or on certain machine configurations, but the contents of eclipse.ini are not trivial nor arbitrary. For the authoritative reference, see this [wiki page]:https://wiki.eclipse.org/Eclipse.ini#Specifying_the_JVM that explains the contents of the file. Also note the See Also links at the bottom of that page for more details about things like heap size, etc. DO NOT delete eclipse.ini, EVER. It is also inadvisable to remove the -vm or Xmx options. If you do, you're asking for trouble.

Here are references from the wiki page pertaining to your problem:

Reference_1

Reference_2

1 Comment

a simple but important pint to mention: -vm has to be placed before -vmargs option in eclipse.ini.
2

This worked for me:

I closed all the other memory intensive applications on my Windows 7 machine. And I tried to open Eclipse, and, voila, it worked.

Comments

2

Some time it's not your eclipse.ini; it's your JDK which is crashed. You can check it by writing following command in a command prompt:

c:\> java -version

If this command shows the following error:

Error occurred during initialization of VM

java/lang/NoClassDefFoundError: java/lang/Object

Then first uninstall JDK and reinstall it.

Eclipse will be in action again ;) As today I have got the same problem, and the above is suggested by Itachi Uchiha.

Comments

2

Faced the issue when my Eclipse proton could not start. Got error "Failed to create the Java virtual machine"

Added below to the eclipse.ini file

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

Comments

2

You need to add javaw.exe full path with forward slash i.e. / instead \ to eclipse.ini even you are on Windows. Like below:

-vm
C:/Program Files/Java/jdk-14/bin/javaw.exe

Also the above lines must be placed before -vmargs.

Comments

1

Adding this fixed the issue for me:

-vm

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

Comments

1

Reduce param size upto -256

See my eclipse.ini file

    -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

Comments

1

enter image description herei had that following issue. so i did was find that eclipse.ini file in the eclipse installation folder. then i edited that as follows

then i edited as follows add java jdk file desitination for -vm.remove XX things and add XX:MaxPermSeze=256

3 Comments

Please place command references in text so they can easily be read, copied, and searched.
i thought that giving screenshot of edit and unedited would be clear isn't it
The issue is simply that it’s not an answer. Ideally, all relevant information should be edited into your original question.
0

For me it solved by changing the JDK bin path in the Path environment variable. Put the JDK bin path which has jre/bin/client/jvm.dll under JDK home.

Comments

0

STEPS TO SOLVE THE ISSUE :-

  1. Open the eclipse.ini file from your eclipse folder.

  2. It has some of add on configuration . Find the line –launcher.XXMaxPermSize.It will be the last line in this file. Now remove/delete the the default value 256m and save it.

Comments

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

Comments

0

I was facing the same problem, and I found the solution. There are issues in allocation of MaxPermSize. If you try to allocate more than your machine's free space then it gives this error in my issue. So try to reduce MaxPermSize.

I think it will help you to sort out your issue.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.