Well what this means is : JVM has a fixed memorry at his disposal and it is this fixed memory JVM recycles and so your application can go on and on.
Sometime what happens your application is doing some intensive work and consuming more memory than what is garbage collected and so in due course of time system run's out of the memory and now no more objects etc can be created.
Normally this happens if you are not releasing your objects after use,that is use objects in proper scope ,specially which are used in recursion say in FOR loop.
In your case it can be different reason depending on the kind of work you are doing.
Actually this error comes only when i use commandline compiler instead of programatic compiler(sun.tools.javac.Main)
otherwise it runs properly...........
now i use this compiler $(JAVA_CLASSPATH) $(JAVA_MEM2) javac
instead of this
java $(JAVA_CLASSPATH) $(JAVA_MEM2) sun.tools.javac.Main
Well, this just proves the point that I was trying to make and you completely missed...
Nobody has a clue because you have posted ZERO information. Who knew you were compiling? Everyone assumed you were running some code you'd written.
Most of us (except ejp occassionally) are not clairvoyant. We need information to go on.