Optimizing Eclipse with eclipse.ini VM Arguments
The eclipse.ini
file is a key configuration file for controlling the startup settings of Eclipse. By adjusting this file, you can specify important VM arguments, such as which JDK Eclipse should use, as well as set memory options like permgen space, and define heap sizes through parameters like Xms
and Xmx
.
Locating the eclipse.ini File
The location of the eclipse.ini
file varies depending on your operating system:
- Windows: The file is typically found in the same directory as the
eclipse.exe
file. - Mac OS X: The file is located within the app package. Navigate to it by right-clicking on the Eclipse app, selecting “Show Package Contents,” and then opening the path
Contents/Eclipse
.
Here’s a basic example of an eclipse.ini
file layout:
-startup
../Eclipse/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar
--launcher.library
../Eclipse/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.300.v20150602-1417
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.7
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-XX:MaxPermSize=256m
-Xms256m
-Xmx1024m
-Xdock:icon=../Resources/Eclipse.icns
Important Notes on eclipse.ini Configuration
- Lines above
-vmargs
represent startup options for Eclipse, while anything below it is passed as JVM arguments. - Make sure to place all VM-related settings (like the JDK path) above
-vmargs
, as anything after-vmargs
is processed solely as JVM arguments. - The
--launcher.XXMaxPermSize
parameter sets the maximum permgen space for the Eclipse launcher. Increasing this can help if Eclipse is struggling with memory during startup.
Setting the JVM with eclipse.ini VM Arguments
If you have multiple JDK versions installed, you can specify the one you want Eclipse to use by defining the -vm
argument before -vmargs
. Here’s how to set JDK 8 on Mac OS X, for example:
-vm
/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin
-vmargs
On other operating systems, you would simply adjust the path to match the location of the JDK’s bin
directory.
Managing Permgen Space
If you encounter an OutOfMemoryError
related to PermGen space
, particularly when working on large projects or using Maven, you might need to increase permgen space. This can be done by adding -XX:MaxPermSize=512M
in the eclipse.ini
file.
Note: Starting from Java 8, there is no more
PermGen
space, so this setting is obsolete with JDK 8 and beyond.
Configuring Heap Space
To increase the maximum heap space available to Eclipse, you can edit the -Xmx
parameter. For instance, to allocate 2 GB of heap memory, set the following:
-Xmx2048m
This adjustment can resolve OutOfMemoryError
issues caused by insufficient heap space, especially useful for resource-intensive projects.