Related
While running my Java code in Eclipse IDE, I got the error:
Exception in thread "D3D Screen Updater" Exception in thread
"AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
I searched for this error and tried solutions described here and here, but they did not work.
I changed these parameters in eclipse.ini:
--launcher.XXMaxPermSize
512M
-Xms40m
-Xmx512m
to:
--launcher.XXMaxPermSize
1024M
-Xms512m
-Xmx2048m
EDIT:
I changed this parameters at Run Configurations:
But I still get the same error. Am I missing something?
The memory settings in eclipse.ini is allocated to Eclipse IDE only,
not the program you want to run. A very common mistake is updated the
heap size in eclipse.ini, and expects it to solve above out of memory
problem.
http://www.mkyong.com/eclipse/eclipse-java-lang-outofmemoryerror-java-heap-space/
Where is the "vmargs" option? If you set the min/max heap, you probably need to do it on the main process, not the launcher.
See the Eclipse FAQ item on setting VM options.
That launcher PermSize opt is a bit ridiculous. Unless you know it is launcher PermSize causing the OOM, keep it at the default of 256m.
[EDIT]
As pointed out else-thread, if this is happening when you run your Java program from Eclipse, you tweak those settings within the "Run Configuration" for that program, not Eclipse.ini.
Also, remember that you can tweak the VM options all you want, but if the program wants to eat all the resources on the box before it OOMs, no amount of tweaking can mitigate this.
If we are using windows try this:
Try setting a Windows System Environment variable called _JAVA_OPTIONS with the heap size you want. Java should be able to find it and act accordingly
Below settings workes for me :
-Xms512m -Xmx1024m -XX:MaxPermSize=512m
Assuming you have 4gb or more RAM, try something like this in eclipse.ini(notice the capital/small letter "m"):
--launcher.XXMaxPermSize
1024M
--launcher.XXMaxPermSize
1024m
-vmargs
-Xms512m
-Xmx2048m
I'm having issue with running my Eclipse with the following config:
eclipse.ini
-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.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
--launcher.defaultAction
openFile
-vm
jdk1.7.0_02/bin
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms256M
-Xmx1024M
# Adding this line, I get "Failed to create virtual machine"
-XX:PermSize=512M
-XX:MaxPermSize=512M
-XX:+UseParallelOldGC
-XX:ParallelGCThreads=2
-XX:ThreadPriorityPolicy=1
-Xverify:none
-XX:-UseSplitVerifier
The above configuration works except when I add the lines I specified above. What could be the problem?
I am running eclipse from a Windows 7 (64-bit) machine with 4GB ram, although the JDK I specified in the path is 32-bit which works just fine. The only problem is if I add those additional config parameters.
There are two place in eclipse.ini that includes
--launcher.XXMaxPermSize
256m
make it
--launcher.XXMaxPermSize
128m
I had exactly the same problem, one day eclipse wouldn't open. Tried editing eclipse.ini to the correct java version 1.7, but still the same error. Eventually changed :
-Xms384m
-Xmx384m
...and all working.
it works for me after changing MaxPermSize=512M to MaxPermSize=256M
Change the below parameter in the eclipse.ini (which is in the same directory as eclipse.exe) to match one of your current Java version. Note that I also changed the maximum memory allowed for the eclipse process (which is run in a JVM). If you having multiple Java versions installed this can be happen. The below trick word for me.
-Xmx512m
-Dosgi.requiredJavaVersion=1.6
I cahanged this to,
-Xmx1024m
-Dosgi.requiredJavaVersion=1.7
Then It worked...
Reduce the memory size to Xmx512m and it works.
Change the below parameter in the eclipse.ini (which is in the same directory as eclipse.exe) to match one of your current Java version. Note that I also changed the maximum memory allowed for the eclipse process (which is run in a JVM). If you having multiple Java versions installed this can be happen. The below trick word for me.
-Xmx512m
-Dosgi.requiredJavaVersion=1.6
I changed this to,
-Xmx1024m
-Dosgi.requiredJavaVersion=1.7
Then It worked.
I deleted my eclipse.ini after non of the above worked for me.
I fully expected the next run (when it looked likely to work) to recreate it so I could compare but it did not.
So I can't tell what fixed it specifically.
an oddity I did have however was jdk 1.7 but when I ran
C:\Users\jonathan.hardcastle>java -version
Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'
has value '1.7', but '1.6' is required.
Error: could not find java.dll
Error: could not find Java SE Runtime Environment.
i got the above.. so I (re?)installed jre 1.7 specifically and that went away.
This was not linked to my eclipse success directly.
--launcher.XXMaxPermSize
MaxPermSize=256m
-Xms512m
-Xmx1024m
replace with below one
--launcher.XXMaxPermSize
MaxPermSize=128m
-Xms256m
-Xmx512
m
You can also try closing other programs. :)
It's pretty simple, but worked for me. In my case the VM just don't had enough memory to run, and i got the same message. So i had to clean up the ram, by closing unnecessary programs.
Just add your JDK path in windows environment variable. This solves in my case
I had the same problem, I've fixed it very simple by updating my JDK version. If you don't have JDK installed or not updated, please Go here and install/update it. Mostly your problem will be fixed.
In my case reducing Xmx1024m to something smaller e.g Xmx512m make it works. So from all the responses (above and in similar other sites), it seems that you may try to massage/reduce the memory size.
I have added below line and its working fine.
-vm C:/Program Files/Java/jdk1.6.0_16/bin/javax.exe
-Xmx512m
-Dosgi.requiredJavaVersion=1.6
You can do a workaround as below:
Create a shortcut for eclipse and right click on the short cut and go to properties of the shortcut.
In the target box update the string:
-vm "C:\Program Files\Java\jdk1.6.0_07\bin"
the path will change according to your java installed directory.
So after changing the target string will be something like below.
D:\adt-bundle-windows-x86-20131030\eclipse\eclipse.exe -vm "C:\Program Files\Java\jdk1.6.0_07\bin"
Click apply and try clicking the Eclipse shortcut.
Try to open eclipse.ini and replace
-Xmx1024m
with
-Xmx512m
My java version is 1.7 as you can see below
-Dosgi.requiredJavaVersion=1.7
so i didn't modify that parameter.
This worked for me ;-)
For me it was a memory issue. If I run tomcat with my (large) webapp then try to start Eclipse, I get the Eclipse error. If I start Eclipse first, then start tomcat and my webapp, all works as expected.
Recently i encounter this issue and try all of the above method but none of them works for me.
Here is another Trick for to solve this error is
i just delete the eclipse configuration file and eclipse start working.. i don't know why but it works.
Maybe this helps someone else.
If Anybody Is using prior version then Jdk 8 update 20 and getting this Issue
Please Remove the following from eclipse.ini file
-XX:+UseStringDeduplication
As StringDeduplication was added in later version of JDK 8 in update 20
For StringDeduplication Clarification check this By Fabian Lange
https://blog.codecentric.de/en/2014/08/string-deduplication-new-feature-java-8-update-20-2/
I had also entered the path of MinGW complier for C++. After removing it, the error disappeared.
I tried several methods but didn't work. The only one that did is the one right at the bottom. I'll just list the other options I tried as well, for reference.
Some background, I migrated from Mars to Neon and copied over eclipse.ini almost exactly.
Reduce -XX:MaxPermSize and -Xmx
Like other answers have mentioned, progressively reduce these 2 flags (eg to 128m) and try again. If it still doesn't work at 128m then try other options below.
Find the offending flag by renaming eclipse.ini
Jon H's answer gave me a hint. Delete eclipse.ini (or rename it) and start eclipse. It should regen eclipse.ini and launch successfully (mine didn't regen eclipse.ini though eclipse launched fine).
If eclipse.ini did regen for you, then add each flag back one-by-one.
If not, revert the original eclipse.ini and remove each flag one-by-one until you've found the flag that causes an error.
For my case, I upgraded from Mars to Neon. The offending flag was -XX:+UseG1GC Removing this flag (and only this flag) worked for me. Setting back -Xmx and -XX:MaxPermSize to 1G worked for me as well.
It works for me after removing -XX:+UseParallelOldGC option from file.
Change target to specific installation file
like below
Target: D:\SoftWares\oepe-12.1.3.1-luna-maf-distro-win32-x86_64old\eclipse.exe -vm D:\delete\jdk1.7.0_67\bin\javaw.exe
I'm using eclipse to develop android application and it always gone well, but today it's giving problems.
When i try to open eclipse it show me this message "Failed to create the java virtual machine. Error occurred during initialization of VM. Could not reserve enough space for object heap"
This is my eclipse.ini
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120913-144807
-product
com.android.ide.eclipse.adt.package.product
--launcher.XXMaxPermSize
256M
-showsplash
com.android.ide.eclipse.adt.package.product
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Xms1336m
-Xmx1336m
-Declipse.buildId=v22.3.0-887826
-XX:MaxPermSize=512M
I tried to change "256m" in "512m" but it still doesn't work. I tried to restart but nothing. I tried to change the -XX:MaxPermSize=512M value, but nothing.
Just add your JDK path in windows environment variable.
Open eclipse.ini and change the following variables.
For -Dosgi.requiredJavaVersion=1.8, try changing your required Java version to 1.6.
Memory-related defaults (as of Eclipse 3.4):
-Xms40m
-Xmx256m
-XX:MaxPermSize=256m
Recommended settings for Android development:
-Xms128m
-Xmx512m
-XX:MaxPermSize=256m
If everything else fails you can just delete or rename eclipse.ini and let the IDE handle everything. I strongly suggest looking for a current replacement for your eclipse.ini and reading up on how to configure the eclipse.ini for Android development.
Closed all the other memory intensive application in my windows7. And tried to
open eclipse. This worked for me, and I found it on similar question here Stackoverflow-eclipse failed to create JVM.
This is a picture of the error code
Here is the content of the error message:
Java was started but returned exit code=1
C:\WINDOWS\system32\javaw.exe
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx768m
-Declipse.buildId=v22.0.5-757759
-XX:MaxPermSize=256m
-jar
D:\Programming\adt-bundle-windows-x86_64-20130729\eclipse\\plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
-os win32
-ws win32
-arch x86_64
-showsplash
-launcher
D:\Programming\adt-bundle-windows-x86_64-20130729\eclipse\eclipse.exe
-name Eclipse
--launcher.library
D:\Programming\adt-bundle-windows-x86_64-20130729\eclipse\\plugins/org.ecl
ipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20120913-144807\eclipse_1503
.dll
-startup
D:\Programming\adt-bundle-windows-x86_64-20130729\eclipse\\plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.overrideVmargs
-exitdata 1c50_48
-product com.android.ide.eclipse.adt.package.product
-vm C:\WINDOWS\system32\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx768m
-Declipse.buildId=v22.0,5-757759
-XX:MaxPermSize=256m
-jar
D:\Pragramming\adt-bundle-windows-x86_64-20130729\eclipse\\plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
I just downloaded and dearchived android SDK for Windows. I`m currently using W8 64x.
The error message points to a problem with your Java version. Do you have a JDK installed?
Try adding the following (noting the new line):
/!\ make sure, that the -vm option occurs before the -vmargs command.
Everything after -vmargs is passed directly to the JVM.
-vm
c:/wherever/java/jdk1.6.0_21/jre/bin/server/jvm.dll
-vmargs...
...to your eclipse.ini file, pointing to the JDK you want to use, and check that the required Java version is at least as new as your JDK. This is the path for a Windows system. More on paths can be found here (scroll down).
If you don't know where the eclipse.ini file is: regularly it is in the folder of your eclipse.exe.
Edit2: #KadoLakatt: the reason why installing the latest Java Version worked for you is because Eclipse checks the standard path for a JVM if it doesn't find a -vm entry (see here). However I'd not recommend that, since you might be wrong guessing the JVM used. If you update Java (automatically?) you might run into problems in your Eclipse wondering what you might have changed. Better set it to a specific folder in your eclipse.ini to be certain.
I received this error out of the blue. Eclipse stopped working even though I made no config changes and did not install any new jdk's.
Here was my eclipse.ini file :
--clean
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20130807-1835
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vm
C:/Program Files (x86)/Java/jre7/bin/javaw.exe
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx1024m
To get Eclipse to start successfully I removed
-vmargs
-Dosgi.requiredJavaVersion=1.6
-vm
C:/Program Files (x86)/Java/jre7/bin/javaw.exe
So here is my updated file :
--clean
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20130807-1835
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-Xms40m
-Xmx1024m
I have no idea why removing osgi.requiredJavaVersion=1.6 fixed this as my jvm version is 1.6. From the doc http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc%2Fruntime-options.html
osgi.requiredJavaVersion
The minimum java version that is required to launch Eclipse. The default value is "1.4.1".
I think my java version was set correctly. Anyway Eclipse starts and runs for me now......
it can be like this as well:
-vm
C:\Program Files\Java\jre6\bin\server\jvm.dll
Working combinations of OS, JDK and eclipse bitness.
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 , 64bit Eclipse (64-bit only)
Kindly use 1 of the above combinations.
Adding -vm parameters works for me.
-vm
C:\Program Files\Java\jdk1.7.0_45\jre\bin\server\jvm.dll
For those of you who tried all the above answers without any success, try lowering your -Xms value. I am required to support an older Eclipse (Weblogic Eclipse 10.3.6) - I had the following .ini on my Windows 7 machine and my Windows Server 2008 R2 Enterprise VM (the Java version below points to a 32-bit Java) that had worked and were working perfectly, respectively.
-vm
C:/Java/Java7/jdk1.7.0_79/bin/javaw.exe
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120522-1813
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
-vmargs
-Xms1024m
-Xmx1024m
-XX:MaxPermSize=256m
-Dsun.lang.ClassLoader.allowArraySyntax=true
-Dweblogic.home=C:/Oracle/Middleware/wlserver_10.3
So a 32-bit Java for a 32-bit Eclipse, but still exit code 1. Based on all answers I had seen here, and the only change being a new laptop with Windows 10, the only possible explanation was that the new OS and the Eclipse were disagreeing on something. So I started playing around with each of the values, and it worked when I lowered both Xms and Xmx to 512m. I have a hunch that possibly the new Windows OS is preventing a higher initial heap size based on some run condition (the higher -Xms does work on Windows 10 on all other similar devices I came across) - so any other explanation is welcome. Meanwhile following is the only value I tweaked to successfully launch Eclipse.
-Xms512m
I've encountered similar problems. The reason is that the path to my eclipse includes Chinese characters. Once those characters are deleted, the problem is solved. Please check if there are characters other than English in your path.
I had same issue in my windows 7, 64-bit machine. Then I downloaded and installed 64 bit jdk for Java(which includes jre). This solved the issue.
I too faced the similar issue , not solved after adding the command in eclipse.ini file. My root cause is different. I was experimenting on sequence diagrams using objectaid. This is throwing an exception and disturbed my workspace. You may have different issue when working on new plugins. Better you check the log file located in your project work-space C:\path\to\workspace\.metadata\.log
This can be resolved by adding the following line to the eclipse.ini file
-XX:-UseCompressedOops
I had the same issue which was caused due to crash shutdown of my windows 10. Earlier in the path I had Oracle path ie the path inserted by Oracle at the time of installation of JDK. I removed it and changed the path to the JDK location. This solved the problem.
Mine is a 64 bit system with 64bit java installation.
what worked for me was the following:
Goto the eclipse installation directory
right click the eclipse icon and click "send to desktop as shortcut"
Then right click on the shortcut icon in the desktop and then > properties > shortcut tab
In the target field point it to the correct java 64 bit installations home path using the vm argument with the java_home path enclosed in quotes like so :
D:\Scala_eclipse\eclipse.exe -vm "C:\Program Files\Java\jdk1.8.0_11"
This almost always solves all my Eclipse (scala eclipse as well) related problems.
As mentioned in the answer , please make sure you are using the right combination of eclipse and java
If you have java 8 installed it might be related to the following issue:
https://support.oracle.com/knowledge/Middleware/2412304_1.html
Simply removing/renaming the "C:\Program Files (x86)\Common Files\Oracle\Java\javapath" worked for me.
Directly changing eclipse file is not a good idea, no matter facet or ini, unless it could be changed in eclipse. Had the same problem, with jdk1.8 installed. Change it to jdk 1.7.
Besides, according to https://wiki.eclipse.org/Eclipse/Installation, both LUNA and MARS need 1.7. So just ensure you have it installed.
1 ) Open the SpringToolSuite4.ini File.
2 ) Search For the openFile.
3 ) Provide the jvm.dll file location in SpringToolSuite4.ini
4 ) Note : Provide the New Line between -vm and your jvm.dll file location path.as shown below.
openFile
-vm
C:\Program Files\Java\jre8\bin\server\jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Xms256m
i had Java Run time environment and Java SDK both on my machine. I removed Java Run time environment and it resolved my error.
Earlier this error, i was using elipse with Java SDK only and later had installed JRE specifically for one need.
just to add here...For the guys those who still couldn't start eclipse due same error, please check eclipse.ini file again and see have you forgot to put M after memory size.
For example:
-Xmx1024
or
-Xmx1024MB
or
-Xmx1024 M
or
-Xmx1024 mb
or
-Xmx1024mb
are incorrect, it should be -Xmx1024M. I have been trying different ideas from SOF and from other forums, and in this cut/paste I forgot that I missed M (such a little thing to miss), so I thought I should share. If it works for some of you please up-vote.
I had this issue recently, but I hadn't changed any java or updated the java version, May be this issue happened because of crash shutdown of the system.
And after reading a couple of answers here I decided to change the java version from 1.6 to 1.7 in the eclipse.ini file.
-vmargs
-Dosgi.requiredJavaVersion=1.6
After this change the Eclipse started well and it worked. Since I didnt had changed anything i decided to change it back to 1.6 to what it was originally.
Then I started eclipse and guess what it worked. So Looks like in my case just touching/modifiying the eclipse.ini file worked.
I hope this answer is helpful to somebody.
If none of the solutions works, please check if you have more than one version of java installed on your machine. Please keep only one version which you prefer and everything should work fine.
None of the above answers helped for me. I discovered that, in general, an error like that could mean that your eclipse.ini has an invalid entry. So, all the above answers could be correct, depending on your particular case. In my case, it turned out I added a locale argument with a typo in it.
I tried to change the path in the parameter -vm, but it did not help. Then I deleted the parameter -vm and -vmargs from the eclipse.ini.
It worked for me
My path of -javaagent argument was having Spacial characters like '&'. I placed the Lambok jar in different place and gave the path to that place. It worked for me.
previously it was
-javaagent:C:\Software & Tool\lambok.jar
i changed it to
-javaagent:C:\Labmok\lambok.jar
Please check your computer and if Java JRE not install download and install it.
https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
If install please check is it 32 bit or 64 bit as per your operating system
To check for 32 or 64-bit JVM, run:
$ java -d64 -version
$ java -d32 -version
Error: This Java instance does not support a X-bit JVM.
Please install the desired version.
Open the Eclipse Installation Folder on Windows Machine
Find the eclipse.ini
Open the eclipse.ini File and add the below two lines before -vmargs
-vm
C:\Users\IshaqKhan\jdk1.8.0_173\bin\javaw.exe
This work for me in eclipse js and eclipse php:
-vm
C:/java/jdk-11.0.1/bin/javaw.exe
--launcher.appendVmargs
-vmargs
I had a similar issue. I opened my eclipse.ini file and noticed that I configured at the end some lines for the lombok library in the past. The path to my lombok jar file was no more valid. After correcting it, my eclipse was working like a charm again. In conclusion, my piece of advice would be to verify that all the paths configured in this file are valid.
eclipse.ini :
-...
-javaagent:C:\some\path\to\lombok.jar
-Xbootclasspath/a:C:\some\path\to\lombok.jar
JAVA Path could be incorrect
Trying above solution didn't help me.
So i checked java --version on command prompt, which gave virtualization conflict. It seemed installation of virtualization software on system had messed up environment variables.
Hence I checked JAVA_HOME which was on correct path, then checked system variable PATH which had correct JAVA bin path as well, so removed 'C:\Program Files (x86)\Common Files\Oracle\Java\javapath' and checked java --version on command prompt again, which gave correct value and also fixed above issue of eclipse start.
On Windows 10, removing
-XstartOnFirstThread
from the eclipse.ini fixed the issue for me
Go to eclipse folder and then go Configuration Setting file
change the below path under -vm tag in config file
Note- you need to mention new java path with bin and then javaw.exe like below
-vm
java path/bin/javaw.exe
It should work. Thanks.
if it says
c:/program files/java/jre/bin/server/jvm.dll not found
then copy the jre from jdk folder and paste it outside the jdk folder . and then try again...
I am using eclipse EE in ubuntu by downloading the .tar.gz file from eclipse website and extracting in my home directory. I set the -Xmx to 3072m in the eclipse.ini. Here it is:
-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.1.R36x_v20100810
-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
-Xms2048m
-Xmx3072m
But when I am trying to see my total memory by
Runtime.getRuntime().totalMemory()
It is returning 62193664 that is 59mb. I also tried to launch eclipse from terminal setting vmagrs, but nothing changed. I don't know what is happening. How can I set the heap size? My total ram is 4gb and I using 64bit Ubuntu with 64bit eclipse. Any information will be very helpful to me.
1) The Runtime.getRuntime().totalMemory() does not return the maximum allowed heap size.
2) I'm not sure how do you run Runtime.getRuntime().totalMemory() but I guess you do that from within your Eclipse in a Java application. In this case you execute the call in another JVM which does not inherit properties from your eclipse.ini file. If you want to determine the initial and max heap size for it you can go to Run->Run Configurations.... Click on your current run configuration and in the right pane click on the Arguments tab. There you may specify the VM arguments, e.g.:
-Xms64m
-Xmx1024m
Afterwards you may continue experimenting with the Runtime. eclipse.ini configures the resources for the Eclipse IDE not for the Java application that you run.
Cheers!
In short, Runtime.getRuntime().totalMemory() is useless, it returns the size of one GC generation.
This thread has an explanation: http://mail.openjdk.java.net/pipermail/hotspot-gc-use/2008-December/000318.html
Thank you. So the solution is setting VM Arguments from Run->Run Configurations in eclipse. I had set it to -Xms3072m -Xmx3072m and now the Runtime totalMemory() is returning 3087007744 that is 2944MB in 4gb ram with 64 bit Ubuntu 10.10 and 64 bit JVM.