Can't start Eclipse - Java was started but returned exit code=13

1,671,028

Solution 1

There are working combinations of OS, JDK and Eclipse bitness. In my case, I was using a 64-bit JDK with a 32-bit Eclipse on a 64-bit OS. After downgrading the JDK to 32-bit, Eclipse started working.

Use one of the following combinations.

  • 32-bit OS, 32-bit JDK, 32-bit Eclipse (32-bit only)
  • 64-bit OS, 32-bit JDK, 32-bit Eclipse
  • 64-bit OS, 64-bit JDK, 64-bit Eclipse (64-bit only)

Solution 2

Your version of Eclipse is 64-bit, based on the paths and filenames. However, the version of Java that it's picking up is 32-bit, as indicated by where it is coming from, on this line:

-vm C:\Program Files (x86)\Java\jre7\bin\javaw.exe

Program Files (x86) is the folder where 64-bit Windows places 32-bit programs.

Program Files is the folder where 64-bit Windows places 64-bit programs.

This can happen when a system has more than one JVM installed, as is often the case on Windows 64-bit (for example, the JRE download page uses the bit-ness of the browser to determine what bit-ness download to offer you, and many people use(d) 32-bit browsers even though they run 64-bit Windows).

The best way to fix this, assuming you do in fact have 64-bit JRE or JDK on your system, is to specify in eclipse.ini exactly which JVM you want it to use. The instructions are detailed in the Eclipse wiki page, but basically you have to specify the -vm option in the ini file - make sure to read the wiki page carefully as the format is very specific.

Specifying the JVM path in eclipse.ini is strongly recommended because doing so isolates Eclipse from any potential changes to your system PATH that some program installers might make (I'm talking to you, Oracle!).

Another option would be to download and use 32-bit Eclipse instead of 64-bit, but it's still strongly recommended to specify the path to the JVM in eclipse.ini.


Left for historical reference:

To check your version of Java, run

  java -version 

in a console (command prompt). On Windows 7 with 64-bit Java 6 I get:

  java version "1.6.0_27"
  Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
  Java HotSpot(TM) 64-Bit Server VM (build 20.2-b06, mixed mode)

Note the 3rd line, which shows that this is a 64-bit version.

On a 32-bit version you'll get something like:

  Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing) 

If you are on a 64-bit machine, then you can install the 64-bit JDK and uninstall the 32-bit one. For instance on Windows 10, just go to Settings and under Apps, you will find Java. Click on it and you will find all the different versions. Now you can select which one to uninstall.

Solution 3

I got this error and found that my PATH variable (on Windows) was probably changed. First in my PATH was this entry:

C:\ProgramData\Oracle\Java\javapath

...and Eclipse ran "C:\ProgramData\Oracle\Java\javapath\javaw" - which gave the error. I suspect that this is something that came along with an installation of Java 8.

I have several Java versions installed (6,7 and 8), so I removed that entry from the PATH and tried to restart Eclipse again, which worked fine.

If it's doesn't work for you, you'll need to upgrade your JDK (to the Java versions - 8 in this case).

Instructions on how to edit PATH variable

Solution 4

If you have recently installed Java 8 and uninstalled Java 7, install JDK 8 and retry.

Solution 5

For me the solution was to go into (on Windows 8.1):

System > Advanced system setting > Environment Variables 

Under 'System variables' in the 'Path' variable there was the following first:

C:\ProgramData\Oracle\Java\javapath;

I removed this and Eclipse worked again!

Share:
1,671,028
Ben E.
Author by

Ben E.

Updated on February 16, 2022

Comments

  • Ben E.
    Ben E. about 2 years

    I am trying to get my first taste of Android development using Eclipse. I ran into this problem when trying to run Eclipse, having installed version 4.2 only minutes ago.

    After first trying to start Eclipse without any parameters to specify the Java VM, I got an error message saying it couldn't find a Java VM called javaw.exe inside the Eclipse folder, so I found where Java was installed and specified that location as the parameter in the shortcut's target. Now I get a different error, Java was started but returned exit code=13.

    Similar questions seem to indicate that it's a 32-bit/64-bit conflict, but I'm 99% positive that I downloaded 64-bit versions of both Eclipse and Java (RE 7u5), which I chose because I have 64-bit Windows 7.

    • If anyone knows how to confirm that my Eclipse and Java are 64-bit, that'd be appreciated.
    • If you think my problem is a different one, please help!
    • Please speak as plainly as you can, as I am totally new to Eclipse and Java.

    Shortcut Target: "C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\eclipse.exe" -vm "C:\Program Files (x86)\Java\jre7\bin\javaw.exe"

    Full error code...:

    Java was started but returned exit code=13
    C:\Program Files (x86)\Java\jre7\bin\javaw.exe
    -Xms40m
    -Xmx512m
    -XX:MaxPermSize=256m
    -jar C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\\plugins/org.eclipse.equinox.launcher_1.30v20120522-1813.jar
    -os win32
    -ws win32
    -arch x86_64
    -showsplash C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\\plugins\org.eclipse.platform_4.2.0.v201206081400\splash.bmp
    -launcher C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\eclipse.exe
    -name Eclipse
    --launcher.library C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\\plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v201205221813\eclipse_1503.dll
    -startup C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\\plugins/org.eclipse.equinox.launcher_1.30v20120522-1813.jar
    --launcher.overrideVmargs
    -exitdata 1e30_5c
    -vm C:\Program Files (x86)\Java\jre7\bin\javaw.exe
    -vmargs
    -Xms40m
    -Xmx512m
    -XX:MaxPermSize=256m
    -jar C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\\plugins/org.eclipse.equinox.launcher_1.30v20120522-1813.jar
    
    • DGH
      DGH almost 12 years
      "Program Files (x86)" is where Windows tends to put 32-bit stuff these days. I'm not sure exactly how to check your java version, but you can always uninstall and download it fresh.
    • DNA
      DNA almost 12 years
    • Tomáš Zato
      Tomáš Zato over 8 years
      @user1522092 How the hell did you access the error message text? On my PC it can't be copied, I had to type it on the keyboard...
    • SwapnilPopat
      SwapnilPopat almost 7 years
      @TomášZato select that error message and use shortcut - Ctrl + C. It will get copied.
    • Matthias Luh
      Matthias Luh over 3 years
      A similar error might also occur "out of nowhere" because of an automatic Java update. DNA's answer helped me in this case, after I (re-?)installed the 32 bit JDK into a directory without spaces and specifying "-vm C:\path_to_jdk\javaw.exe" in the eclipse.ini
  • Steve Kline
    Steve Kline about 10 years
    This solution as well as removing full path and only using, "Javaw.exe" worked for me.
  • Ozan Atmar
    Ozan Atmar almost 10 years
    Well 3rd comment helped me. I didn't understand what the hell is "Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)". Now i know i have to download java-64bit
  • Dave C
    Dave C almost 10 years
    This was it for me! I had my eclipse folder on the desktop and the active user had a special character in their user name.
  • James Okpe George
    James Okpe George almost 10 years
    how do i do this, i am having same problem and cant understand what you mean by calling it explicitly, do u mean like from the command prompt
  • DNA
    DNA almost 10 years
    Yes, from the command prompt (using the file path shown in your error message, not necessarily the example I gave!)
  • Stevko
    Stevko almost 10 years
    Beware of this solution if you are working on a managed windows instance. Most IT/Sec domains have the Program Files directory tree locked down for write access which fubars eclipse.
  • Xavi Montero
    Xavi Montero over 9 years
    I'm 64bit. When I installed jdk1.8.0_20 for 64 bits, it requested me to reboot. I did. It left a JRE in Program Files (x86) and just a DLL in the 64bit Program Files (no javaw.exe), so I pointed the -vm to the Program Files (x86). I still got code=13. With this ashout.com/fix-java-started-returned-exit-code13-eclipse I realized bit versions "should" match yes or yes. So I run the very same JDK installer for a second time. Surprisingly it deployed new files that were missing the first time. Now it works with -vm in C:\Program Files\Java\jdk1.8.0_20\bin\javaw.exe.
  • Mohit
    Mohit over 9 years
    I had updated java, so the java update changed the env. variable value, fixed env. var. value, so it started working.
  • Pritish Shah
    Pritish Shah over 9 years
    That is because probably, you are using jdk 1.7, and browser plugin have installed java 8 update 25, for videos. If you upgrade your jdk to 1.8, in that case this error will go away. Either upgrade the jdk, or uninstall the plug-in. Strange solution.
  • farheen
    farheen over 9 years
    Thanks Mohit, I too had updated java of firefox and path variable got updated as C:\ProgramData\Oracle\Java\javapath; .Hence ,eclipse wasn't getting initialised. Thanks again.
  • QPTR
    QPTR over 9 years
    Hello, I am having the same problem, so I used this command as you mentioned, but it open a dialog box with the error : Could not create a Java Virtual Machine, a fatal exception has occurred. Could you please help with this?
  • DNA
    DNA over 9 years
    See this question (stackoverflow.com/questions/25609405/…) and check you are typing the command correctly. Otherwise, I suggest you start a new question with your specific problem.
  • Vinícius Barros
    Vinícius Barros over 9 years
    I updated my java version because a browser plugin needed the update. It did not work anyways and I ended up not having Eclipse fully functional. That sucked!
  • PolyMesh
    PolyMesh over 9 years
    I just found this problem and noticed this same path prepended to my PATH env variable. I just installed VirtualBox yesterday, so I assume that is the culprit.
  • Pablo
    Pablo over 9 years
    I had the same problem and tried different options but only solved it after removing entry "C:\ProgramData\Oracle\Java\javapath" from PATH variable. Good catch!
  • Chinmoy
    Chinmoy over 9 years
    Great Catch !!! Guys check your Env.PATH Variable and remove this C:\ProgramData\Oracle\Java\javapath;...It is added after JRE8 update I guess.
  • Kannan_SJD
    Kannan_SJD over 9 years
    Thanks Katusepi... It worked like a charm in my case... But i wonder how do the environment variable change with out my(administrator) permission in windows.. !!!
  • Lou Morda
    Lou Morda over 9 years
    so.. not only did oracle delete my java7 path var, but it uses "ProgramData" now? wtf?
  • alexl
    alexl about 9 years
    can someone tell me what to type. Nm, eclipse.exe -vm "\Program Files\Java\jdk1.8.0_05\jre\bin\javaw.exe"
  • boumbh
    boumbh about 9 years
    Worked on Windows seven too, it seems that the installation of Java 8 is messing up with environment variables.
  • Shudy
    Shudy about 9 years
    This worked for me. I installed Java 8 (I had J7) but I forgot to install the JDK8. So I did it, and "voilà". Thanks!
  • LazerSharks
    LazerSharks about 9 years
    So should the path be to javaw.exe? Should -version be replaced with your desired version? Like -x86?
  • DNA
    DNA about 9 years
    Either java.exe or javaw.exe should work - we are just trying to find out what version of Java is in that folder. Use the -version flag, don't replace it with anything - this tells Java to report its version rather than actually running anything.
  • avatastic
    avatastic about 9 years
    This worked for me (Win7 x64). I suspect this entry was added after installing a 32bit jre 8 for Firefox.
  • KostasA
    KostasA about 9 years
    Thanks man! I have OS(win7 x64) and this solution prompted eclipse to start!
  • Charles J. Daniels
    Charles J. Daniels about 9 years
    This worked for me after a Java 8 install, even though I never uninstalled any other versions of java.
  • user1880957
    user1880957 about 9 years
    My case was Tomcat server (within eclipse) did not get stopped properly from the earlier run. So, I had to kill eclipse from Windows Task Manager. Thereafter eclipse was not starting any more. When I added this solution, it started working again. Seems strange, but this was indeed the fix.
  • TheZuck
    TheZuck about 9 years
    same problem with path not going to the right place
  • desw
    desw about 9 years
    Thanks, this saved me a lot of time. On my side I had to install the 64bit jdk and the change the environment variable that the updates had changed.
  • WhyGeeEx
    WhyGeeEx almost 9 years
    Mansour - With Java 8, Oracle bundled the uninstall of prior versions with the install. If you selected that option on install, uninstalling may leave you with nothing.
  • user65165
    user65165 almost 9 years
    hi, mine is Program Files <x86>\Java\jdk1.8.0_45\bin but I don't know what to do from here... i tried many things but none worked...
  • Dane411
    Dane411 almost 9 years
    maybe you meant "jre-8u45-windows-x64.exe" instead of "jdk-8u45-windows-x64.exe"
  • JuliandotNut
    JuliandotNut almost 9 years
    That means it was a 32bit vs 64bit issue as mentioned in top answer. :) Cheers though
  • zygimantus
    zygimantus almost 9 years
    Using eclipse.exe -vm "C:\Program Files\Java\jdk1.8.0_25\bin" in Windows 7 64 bit works like a charm
  • Maximiliano Rios
    Maximiliano Rios almost 9 years
    My case indeed. The mismatch between 32 and 64 bits is classic. I didn't even remember whether or not I downloaded a 64 bits version until I use java -version
  • Swaroop
    Swaroop almost 9 years
    Thanks had the same problem where my Path was set to C:\ProgramData\Oracle\Java\javapath and I had moved it to the end.
  • Don Cheadle
    Don Cheadle over 8 years
    so how do we get Eclipse to use the proper Java executable / version?
  • ingomueller.net
    ingomueller.net over 8 years
    The answer shows how to find out the installed Java version. What is missing is what Java version is required!
  • V15I0N
    V15I0N over 8 years
    These files mentioned were created or changed on my PC with the last update from Oracle - to make it not work! That is really not like it should be ... The 32 bit update just silently removed the 64 bit installation
  • Ungeheuer
    Ungeheuer over 8 years
    @DNA Im having the same problem. I checked my control panel and saw only 64-bit java versions installed, but command prompt says im running the 32-bit version, and if I go to Control Panel > Programs a tile appears that says Java 32-bit, yet I have no 32-bit java on my computer. what should I do?
  • Ungeheuer
    Ungeheuer over 8 years
    @ingomueller.net the bit required depends on the eclipse bit downloaded.
  • Halogen
    Halogen over 8 years
    Came across this javapath thing as well. In addition to removing it, I had to add a PATH variable to my current JDK (1.7.0_09) as well. Seems like the installations of different versions of JDK/JRE set env variables differently.
  • Tomáš Zato
    Tomáš Zato over 8 years
    So I can't use Eclipse to develop 32bit java programs or what? I mean, in netbeans I targeted both 32bit and 64bit with no problems.
  • DNA
    DNA over 8 years
    Java code produced by Eclipse will (in general) run on any platform that supports Java: 32bit or 64bit Windows, Linux or whatever. This question is about getting compatible versions of Eclipse and Java so that Eclipse works.
  • stack1
    stack1 over 8 years
    How do I change it to program files 64 bit ? I right click java.exe > properties > shortcut tab. The target field cannot be changed.
  • Débora
    Débora over 8 years
    I did all other solutions, but they didn't work for my windows 10. Anyway, your solution worked for me and saved my many hours.... SALUTE !!!. Thanks so much.
  • Amit Kumar
    Amit Kumar over 8 years
    How can eclipse say java was started then if its not on your machine?
  • Michał Szałapski
    Michał Szałapski over 8 years
    It works for me :) After normal update to 1.8 i havent install JDK manualy. Now everything works fine.
  • dreamdeveloper
    dreamdeveloper over 8 years
    You just remove the 32 bit files and copy the same from 64 bit path(inside Program files)
  • Sathesh
    Sathesh over 8 years
    Perfect worked like a charm :) worked for me in windows 8 64 bit
  • ChristophK
    ChristophK over 8 years
    I refuse to install a SDK when I actually only need a runtime.
  • roded
    roded over 8 years
    Is there an open issue for this?
  • HIREN011
    HIREN011 about 8 years
    @Kannan_SJD => How exactly you modified eclipse.ini file? I also do not have admin permission and need to solve this same problem. When I added "-vm c:\My_JDK_1.6_Dir\bin\javaw.exe", it still gave me same error - exit code 13 and I see that in the full error log, it shows me two lines "-vm c:\My_JDK_1.6_Dir\bin\javaw.exe" and "-vm c:\ProgramData\Oracle\Java\javapath\javaw.exe". I want to make sure that it starts my JRE/JDK 1.6 and not the one from PATH which is pointing to 1.8
  • FractalBob
    FractalBob about 8 years
    When I had the same problem, I resolved it by editing eclipse.ini and changing Dosgi.requiredJavaVersion=1.7 to Dosgi.requiredJavaVersion=1.8
  • E-Riz
    E-Riz about 8 years
    Just to be clear, exit code=13 is always caused by bit-ness mistmatch between Eclipse and the JVM. People can arrive at that point a variety of ways, but in the end it isn't caused by a specific version of Java (6 vs. 7 vs. 8) or whether you use JRE vs. JDK - it's always rooted in a bit-ness mismatch. See the accepted answer above.
  • Tomer
    Tomer about 8 years
    Your answer helped a lot! I think that you should specify in your answer how to find the second javaw.exe Personally I didn't straightly understand that I should look inside the other program files binary and copy that address. (and not from Program files x86) Finally I understood from what you said "Program Files (x86) is the folder where 64-bit Windows places 32-bit programs." that there is probably jaraws.exe in a different Program Files. Again this helped me a lot!
  • Indrajeet Gour
    Indrajeet Gour almost 8 years
    I have not been updated the eclipse.ini just added jdk bin folder in PATH and its working for me.
  • arkon
    arkon almost 8 years
    Why would you delete the entry when you can just point it to the correct directory instead?
  • sharcfinz
    sharcfinz over 7 years
    Didn't work for me and I ended up getting a "JVM terminated. Exit code=2". Turns out I needed to install the jre for 64-bit, which matched the 32-bit previously installed during a recent update.
  • FatherMathew
    FatherMathew over 7 years
    I think is the first of the multiple problems that anyone just beginning with eclipse has to deal with...
  • Peter Mortensen
    Peter Mortensen over 7 years
    This is already covered by bello's answer, posted about 1/2 year prior.
  • Peter Mortensen
    Peter Mortensen over 7 years
    Is that really two lines in file eclipse.ini?
  • Pir Fahim Shah
    Pir Fahim Shah over 7 years
    @PeterMortensen yes, did yu try
  • Brian Gleeson - IBM
    Brian Gleeson - IBM over 7 years
    One important note that caught me out, is to have the path on a separate line to -vm, as noted in the documentation
  • Pacerier
    Pacerier almost 7 years
    @DNA, What does "13" stand for?
  • DNA
    DNA almost 7 years
    @Pacerier I've not been able to find where the exact meaning is documented, unfortunately.
  • AnkitK
    AnkitK over 6 years
    I, too, was facing this error on windows. Removed Java PATH entry in system variables made by Oracle's virtual box. Eclipse started normally then.
  • JoeMjr2
    JoeMjr2 over 6 years
    I just wanted to mention that this happened to me after installing the IntelliJ IDEA IDE. Removing that line from the Path environment variable fixed Eclipse, and as far as I can tell, IDEA is still working as well.
  • Zorglube
    Zorglube over 6 years
    I've done quite the same, I juste put 'C:\ProgramData\Oracle\Java\javapath;' at the end (last entry) of my 'Path' so eclipse find the "right" JVM before the "wrong" one.
  • Maude
    Maude over 5 years
    Note that the jdk path did not work for me, it had to be the jre
  • dreamdeveloper
    dreamdeveloper over 5 years
    You just remove the 32 bit files and copy the same from 64 bit path(inside Program files\Common Files\Oracle\Java\javapath)
  • MasterJoe
    MasterJoe about 5 years
    Anyone know why this works ? It worked for me also.
  • mm6
    mm6 about 5 years
    It really works!!! but why java 8 installations messing with env variables.
  • garnet
    garnet almost 5 years
    Please refer stackoverflow.com/a/11461676/1756069 for additional details about this solution.
  • matbrgz
    matbrgz over 4 years
    @AmitKumar Probably picket up a default browser Java installation.
  • muman
    muman over 4 years
    I moved the path to the 64bit version of Java to the top of the list and the 32bit version to the end. Now Eclipse starts like a champion.
  • randomuser
    randomuser over 3 years
    I was experiencing the same issue with Lua Development Tools and this solution worked for me!
  • stark
    stark about 3 years
    Note that it is ok to have both 32-bit and 64-bit jre installed.