28

I'm trying to install Eclipse, but I can't get the installer to start. It fails with

"Failed to create the Java Virtual Machine"

How can I resolve this?

Note: I'm on Mac.

Brad Parks
  • 66,836
  • 64
  • 257
  • 336

13 Answers13

40

Edit the file /Applications/Eclipse.app/Contents/Info.plist

There is a comment for use a particular JVM:

<key>Eclipse</key>
<array>
    <!-- to use a specific Java version (instead of the platform's default) uncomment one of the following options,
        or add a VM found via $/usr/libexec/java_home -V -->
    <string>-vm</string><string>/Library/Java/JavaVirtualMachines/jdk8u192-b12/Contents/Home/jre/</string>
    <string>-keyring</string>
    <string>~/.eclipse_keyring</string>
</array>
Donal Fellows
  • 133,037
  • 18
  • 149
  • 215
Juan Ignacio Barisich
  • 2,061
  • 19
  • 21
26

It took me some time to figure this out as well. The main takeaway was eclipse does not support SDK Version 14 (as of eclipse 2020-03). That was not completely obvious to me.

  1. Install a supported version (I used Homebrew to install SDK V8 ):

     brew cask install adoptopenjdk/openjdk/adoptopenjdk8
    

    If this is the only Java Version you have installed you should be fine and Eclipse should open up. If that is not the case and you have another Java Version installed. You have to tell Eclipse which Version of Java it should be using (see Step 2).

  2. Tell Eclipse which Version to use by editing the /Applications/Eclipse.app/Contents/Info.plist file as described by Juan Ignacio Barisich and Brad Parks. That being the version you installed in step 1.

     nano /Applications/Eclipse.app/Contents/Info.plist
     # or
     open /Applications/Eclipse.app/Contents/Info.plist
    
     <key>Eclipse</key>
     <array>
         <string>-keyring</string>
         <string>~/.eclipse_keyring</string>
         <string>-vm</string>
         <string>/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/jre/</string>
     </array>
    

Disclaimer: Please bare in mind that those were the steps I took to get eclipse running again. Because I'm nowhere qualified to give a precise answer about this please take a look at the comments in case I got something wrong.

Edit: See Christian Fries answer who pointed out that all java versions 8 to 13 are supported by eclipse.

Donal Fellows
  • 133,037
  • 18
  • 149
  • 215
André Kuhlmann
  • 4,378
  • 3
  • 23
  • 42
  • 6
    No this is not true. On macOs Eclipse does not run with Oracle Java 14.0.0 due a bug of Java, but **fine with 14.0.1**. See [here for details](https://stackoverflow.com/a/60771575/6505250). Please note that the question was asked even before Java 14 was released. – howlger Apr 21 '20 at 16:49
  • Changing to use OpenJDK 17 fixed the problem for me (as I didn't want to keep using an old version of Java). – Donal Fellows Feb 21 '22 at 14:17
15

For me, I had to edit the eclipse-inst.ini file located here:

Eclipse Installer.app/Contents/Eclipse/eclipse-inst.ini

and add the path to my local java VM at the very top of the .ini file, which is here:

-vm
/Users/bparks/jdk/jdk1.8.0_162_x64/bin/java

If the Eclipse Installer.app file is in a DMG, right click on it, and copy it, then paste it into another folder. Then right click on that app file, and choose "Show Package Contents", to get into the files inside the application.

If you've already got Eclipse installed, and find it's throwing the same error, you could try a similar approach by editing the following file for Eclipse:

/Applications/Eclipse.app/Contents/Eclipse/eclipse.ini

On mac, you can get the full path you'd need to your java exe by running the following in a terminal, which will copy the path to your clipboard.

$ echo $(/usr/libexec/java_home)/bin/java | pbcopy
fredoverflow
  • 256,549
  • 94
  • 388
  • 662
Brad Parks
  • 66,836
  • 64
  • 257
  • 336
  • I know this is an old post, but how do I edit the eclipse-inst.ini file? I have tried using sudo vi but I get 'permission denied' or 'read only file'. The downloaded file is a .dmg – appthat Feb 13 '20 at 16:14
  • Been too long - but my guess is that I copied all the files out of the DMG, and put them in a folder somewhere on my mac, then edited that! – Brad Parks Feb 13 '20 at 16:21
  • I've revised the answer to include how I think I did it – Brad Parks Mar 26 '20 at 11:15
  • Hi, where in `eclipse-inst.ini` should I add the path? I added it in the file and when I try and run the DMG, macos says it's damaged and should be trashed. – user1753491 Mar 29 '20 at 21:39
  • @user1753491 - The file you're editing shouldn't be in the DMG anymore, it's in the app - so just run the `Eclipse Installer.app` you copied out of the DMG and edited, and see if that works – Brad Parks Mar 30 '20 at 01:41
  • @BradParks Another stuck person joining the comment thread; I was able to edit the file and paste in my JVM path, but it still says that no JVM is able to be created. – fin444 Mar 31 '20 at 21:31
  • I'm not using Eclipse these days, so I don't know sadly - the above worked for me, from what I recall! – Brad Parks Mar 31 '20 at 22:26
  • 1
    @fin444 uninstall JDK 14 and install JDK 8 through homebrew. That solved my issue. – user1753491 Apr 03 '20 at 01:21
  • 1
    @user1753491 Thanks for the help! I uninstalled all JDK versions other than 8 and it worked. – fin444 Apr 03 '20 at 16:36
  • @user1753491 Probably because you had Java 14.0.0, which has a bug that prevents Eclipse from starting on macOS, which has been fixed in Java 14.0.1. See https://stackoverflow.com/a/60771575/6505250 – howlger Apr 22 '20 at 22:40
  • @fin444 Probably because you had Java 14.0.0, which has a bug that prevents Eclipse from starting on macOS, which has been fixed in Java 14.0.1. See stackoverflow.com/a/60771575/6505250 – howlger Apr 22 '20 at 22:41
  • vote you up .. for me below works: -vm /Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/bin/java – Shubham Jain Dec 24 '21 at 10:51
11

Note: The error "Failed to create the Java Virtual Machine" also exists with Eclipse 2020-03 (under some situations, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=561273) and it is not required to use Java 8 (with Eclipse 2020-03).

For the impatient:

You can run Eclipse or the Eclipse Installer with a given VM without changing eclipse.ini by starting it via a command line:

  • Open Terminal an run:

  • open PATHTOECLIPSEINSTALLER/Eclipse\ Installer.app --args -vm /Library/Java/JavaVirtualMachines/NAMEOFJDK/Contents/Home/bin

where PATHTOECLIPSEINSTALLER is the path of the folder where Eclipse Installer is located and NAMEOFJDK is the name of the folder with the JDK (11, 12, 13).

For example:

open Downloads/Eclipse\ Installer.app --args -vm /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home/bin

In the installer you may select the VM used by Eclipse. Use a compatible VM here and the installer will modify the eclipse.ini for you.

Explanation TL;DR

To clarify this issue:

Eclipse - say Eclipse 2020-03 - runs with Java 11, Java 12, Java 13, but does not run with Java 14. It fails with the message "Failed to create the Java Virtual Machine". This happens for the installer and for Eclipse itself.

You can download Eclipse without the installer from here: https://www.eclipse.org/downloads/packages/

Explanation:

On macOS, if you start a freshly installed Eclipse, it will use the default JVM. The default JVM is obtained by running /usr/libexec/java_home.

This program /usr/libexec/java_home will find the installed JDK with the highest version as default. That is, if you have JDK 14 installed and run Eclipse 2020-03, you will see this error.

Solution

Summarising some other answers here, there are three options:

  1. Once you have removed JDK 14 from /Library/Java/JavaVirtualMachines/ the error will be gone.

  2. If you like to have JDK 14 installed, start the installer with a different JDK via the command line open Path-to-Eclipse-Installer/Eclipse\ Installer.app --args -vm /Library/Java/JavaVirtualMachines/NAMEOFJDK/Contents/Home/bin

  3. You may edit the eclipse.ini (as suggested in other answers) to use a specific JVM.

Christian Fries
  • 16,175
  • 10
  • 56
  • 67
3

I started facing the same problem in mac suddenly after updating to macOS Monterey, So I just did the following steps: enter image description here Then go to Contents/Eclipse/eclipse.ini file and open it with any text editor and you will see the following: enter image description here Add below line before -vmargs as shown in above image:

-vm  /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/bin/java

This below line will be different for all the users:

/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/bin/java

and you can just get this line copied to your clipboard using this command in terminal:

$ echo $(/usr/libexec/java_home)/bin/java | pbcopy

Similarly will be for STS:

enter image description here Then go to Contents/Eclipse/SpringToolSuite4.ini as shown below and open with any text editor app. enter image description here

You will see the following: enter image description here Just add the same line that you added for Eclipse in the above steps: enter image description here

iamgul
  • 83
  • 9
2

Referring to Marseille Joseph https://www.eclipse.org/forums/index.php?t=msg&th=1102885&goto=1823113&#msg_num_13 This worked for me!

Their solution didn't require uninstalling jdk14 or to editing the eclipse.ini file. Instead, do this:

cd /Library/Java/JavaVirtualMachines/jdk-14.jdk/Contents/MacOS/
sudo rm /Library/Java/JavaVirtualMachines/jdk-14.jdk/Contents/MacOS/libjli.dylib
sudo ln -s /Library/Java/JavaVirtualMachines/jdk-14.jdk/Contents/Home/lib/libjli.dylib libjli.dylib
Haem
  • 929
  • 6
  • 15
  • 31
1

delete all java folder inside /Library/Java

then install a new jdk from https://adoptopenjdk.net/

which will install at /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk

then try reinstalling eclipse a

1

I had the same problem in my mac. Here is my solution.

First: I've uninstall all the versions of jdk, because I've try a lot of options. To do this, you need to go to Library/Java/JavaVirtualMachines and delete all the folders.

Second: Install jdk 1.8 here is a link to download this version: jdk 1.8

Third: Install eclipse 2020-03 and thats all.

If you want to use JDK 14, you need to follow this steps:

  1. Open eclipse
  2. Go to Help > Install new software
  3. In the Install window copy the following link in Work with https://download.eclipse.org/eclipse/updates/4.15-P-builds/

Install window

  1. Select the third option show in the picture below Option
  2. Then, click "next" and finish the install

Now you have to change the options, go to Preferences (command + ,) > Java > Compiler and search the version 14. Before this step you need to install jdk 14 (link) Perhaps eclipse would suggest you to change to the correct JREs, for this you need to go to Java > Installed JREs and add the correct version. When you click add you need to choose he JRE type, in my case I use a MacOS X VM and Standard VM, then you have to choose the directory (/Library/Java/JavaVirtualMachine/jdk-14/Contents/Home and click open you could give a JRE Name and finish eclipse will be restart and now you can use eclipse with java 14.

enter image description here

This works for me, I hope you have understood me.

cblnpa
  • 397
  • 1
  • 4
  • 20
1

Go to /Library/Java/JavaVirtualMachines

Delete all version except one in use.

1

Install jdk 8 from brew work for me. You can get the instruction on installing Jdk 8 from HomeBrew here How to install Java 8 on Mac

Linh Le Vu
  • 436
  • 4
  • 7
0

I met this problem with eclipse-java-2020-03-M2-macosx-cocoa-x86_64, and opendjdk11. The latest eclipse installer at the moment also complained same error.

After I switched back to openjdk8, everything goes well...

clarkttfu
  • 577
  • 6
  • 11
  • similar issue found: https://github.com/dbeaver/dbeaver/issues/6353 https://www.eclipse.org/forums/index.php/t/1102062/ – clarkttfu Feb 27 '20 at 06:27
0

For Windows OS:

  1. open eclipse.ini in the Eclipse program folder
  2. add the below lines at the top of the file

-vm

path-to-java-bin\javaw.exe (for example: C:\Program Files\Java\jdk-11.0.10\bin\javaw.exe)

0

I mounted eclipse dmg file and copied eclipse inside Applications. Then I tried to modify file Info.plist located inside Contents as below, but was getting that this file Info.plist is readonly error. I noticed that I already have read and write permission but still it was giving me that read only error. Then I moved the contents of Eclipse to some other local folder and then edited Info.plist, it did not give me readonly error.

<array>             
  <string>-vm</string><string>/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin/java</string>         
  <string>-keyring</string>
  <string>~/.eclipse_keyring</string>           
</array>

Finally I am able to open eclipse.

user1527651
  • 395
  • 1
  • 6
  • 11