http://wiki.eclipse.org/Eclipse.ini
Eclipse startup is controlled by the options in $ECLIPSE_HOME/eclipse.ini
.
If $ECLIPSE_HOME
is not defined, the default eclipse.ini
in your Eclipse installation directory
(or in the case of Mac, the Eclipse.app/Contents/MacOS
directory) is used.
eclipse.ini
is a text file containing command-line options that are added to the command line
used when Eclipse is started up. There are many options available, please see here.
Important:
-vmargs
are passed as arguments to the JVM, -vmargs
(just like when you use arguments on the command-line)-vmargs
on the command-line replaces all -vmargs
settings in the .ini file --launcher.appendVmargs
is specified either in the .ini file or on the command-line. By default, eclipse.ini
looks something like this (the exact contents will vary based on operating system and which Eclipse package you have):
-startup ../../../plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar --launcher.library ../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.100.v20110502 -product org.eclipse.epp.package.jee.product --launcher.defaultAction openFile -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m --launcher.defaultAction openFile -vmargs -Dosgi.requiredJavaVersion=1.5 -XX:MaxPermSize=256m -Xms40m -Xmx512m
Among other things, this sets the heap space to 40MB initially and a maximum of 512MB,
and also specifies a maximum PermGen size of 256MB.
A max heap of 512MB might be OK for some users, but it's often necessary to bump that value up for large project sets
or when some third-party plugins are installed.
One of the most recommended options to use is to specify a specific JVM for Eclipse to run on.
Doing this ensures that you are absolutely certain which JVM Eclipse will run in
and insulates you from system changes that can alter the "default" JVM for your system.
Many a user has been tripped up because they thought they knew what JVM would be used by default,
but they thought wrong. eclipse.ini lets you be CERTAIN.
The following examples of eclipse.ini
demonstrate correct usage of the -vm option.
Note the format of the -vm option - it is important to be exact:
Here is an example of what eclipse.ini
might look like on a Windows system after you've added the -vm
argument and increased the maximum heap space:
-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.java.product --launcher.defaultAction openFile --launcher.XXMaxPermSize 256M -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m --launcher.defaultAction openFile -vm C:\Java\JDK\1.6\bin\javaw.exe -vmargs -Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx1024m
Remember that the exact values will differ slightly depending on operating system and Eclipse package.
This is how the -vm
argument might look on Windows (your exact path to javaw.exe
could be different, of course):
-vm C:\jdk1.7.0_21\bin\javaw.exe
An alternative way is to insert the following VM option before the -vmargs option in the Eclipse shortcut properties(edit the field Target inside the "Shortcut" tab):
-vm C:\jdk1.7.0_21\bin\javaw.exe
or
-vm C:\jdk1.7.0_21\jre\bin\java.exe
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
(exact path could be different):
-vm C:\Development\Java\64bit\jdk1.7.0_09\jre\bin\server\jvm.dll
This is how the -vm argument might look on Linux (your exact path to java
could be different, of course):
-vm /opt/sun-jdk-1.6.0.02/bin/java
On a Mac OS X system, you can find eclipse.ini
by right-clicking (or Ctrl+click) on the Eclipse executable in Finder, choose Show Package Contents, and then locate eclipse.ini
in theMacOS
folder under Contents
.
To specify Java 6 for OS X:
-vm /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/java
For versions of Mac OS X 10.7+ the location has changed to
/Library/Java/JavaVirtualMachines/<''jdk_name_ver''>/Contents/Home/...
To be safer, determine the location for the JDK you intend to use via the utility /usr/libexec/java_home and put this value with .../bin/java appended into the Eclipse.ini file.