Reputation: 11707
This is frustrating. I'm trying to run a program which loads into memory a 4000x3000 image. It runs fine in Ubuntu but not in Mac, throwing an OutOfMemoryError: Java heap space. Here's my eclipse.ini in Ubuntu
-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.200.v20090520
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vmargs
-Xms128m
-Xmx512m
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=/usr/share/eclipse/dropins
As for Mac
-startup
../../../plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx_1.1.100.v20110502
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vm
/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/java
-vmargs
-Xms128m
-Xmx512m
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
Note that I've tried increasing the PermSize memory Xmx and Xmx of Mac to around 1024m but Mac still throws OutOfMemoryErrors. I only tried making them similar because, well, it runs in Ubuntu just fine.
Any suggestions?
Thanks!
Upvotes: 1
Views: 4233
Reputation: 33004
First, your error is about heap space, so changing Perm space isn't going to affect it.
Second, as Joeri pointed out, the eclipse.ini
file affects how Eclipse itself runs, not programs that you write and run from inside Eclipse.
On your Launch Configuration, go to the Arguments tab and enter the -Xmx
argument in the box labeled VM Arguments.
If you know for certain that you always want all your Launch Configurations to run with certain heap space arguments, you can assign them to the JRE. Open Eclipse Preferences and find Java > Installed JREs. From there, select the JRE that you want to work with, click the Edit button, and there you'll find a Default Vm Arguments field. If you set -Xmx
there (or any other JVM arguments), they will affect any Launch Configuration that uses that JRE.
Upvotes: 1
Reputation: 17445
These are your settings for eclipse, not for your program (I'm assuming you're not building it as an Eclipse component). Your program will run with the default settings unless you specify differently in your Run configuration.
The defaults java starts with depend on multile factors, like architecture, OS, and available RAM. So it's entirely possible that it would start with a lower memory limit on your mac.
To fix this, set Xmx to be the same on both systems (Also make sure they're on the same architecture, 64 bit apps might require more memory to do the same thing).
Upvotes: 3