Jason Rogers
Jason Rogers

Reputation: 19344

Applet: Java heap space

Due to a small implementation mistake I discovered how quickly I could reach a Java heap space issue

now the bug is fixed everything is fine but it did get me looking into how to solve this and I foudn multiple solution such as

java -Xms5m -Xmx15m MyApp

the problem is that this changes the java memory on my computer, but I'm working on a Applet that is going to be used in a webrowser.

Therefore, is there a way, at RUNTIME in an APPLET to change the heap size ?

Upvotes: 7

Views: 5346

Answers (4)

Dubas
Dubas

Reputation: 2876

You can add parameters to the applet tag. But the parameter you are interested on is available only on Java6 u10 or later.

Example:

<APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300">
    <PARAM name="java_arguments" value="-Xmx256m">
</APPLET>

Here more information http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#JAVA_ARGUMENTS

Upvotes: 10

Eduard
Eduard

Reputation: 3216

the JVM may have started long before you Applet. It is too late now to change heap size. Try Java Web Start where you can control that, spawning a new JVM for your Applet/application.

Upvotes: 1

corsiKa
corsiKa

Reputation: 82559

If it's not specified on the command line, you have to get it from the JVM settings. So when you deploy your applet to the web, it will be dependent on what memory settings they have on their computer when they run it. Typically it's set to 60-90Mb by default, so try to keep it under that.

Consider the ramifications if the applet could change those settings... what else it might be able to change. That's just asking for a security exploit eventually, and Java aims for security before functionality :)

Upvotes: 1

Peter Knego
Peter Knego

Reputation: 80340

AFAIK, only user can change JRE heap settings. Applet can not change this settings.

Update:

It seems that in the latest versions of JDK this is possible. Look at: How can I start an Java applet with more memory?

Update2:

Memory settings can only be set for JNLP apps, not for Applets.

Upvotes: 2

Related Questions