문제

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 ?

도움이 되었습니까?

해결책

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

다른 팁

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.

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 :)

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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top