2011-02-17 18 views
7

Debido a un pequeño error aplicación descubrí lo rápido que podía llegar a un problema de Java heap spaceApplet: Java heap space

todo lo que ahora el error se corrige está bien, pero que la hacía yo buscando la forma de resolver esto y me foudn solución múltiple tal como

java -Xms5m -Xmx15m MiApl

el problema es que esto cambia la memoria java en mi equipo, pero estoy trabajando en un applet que va a ser utilizado en un webrowser.

Por lo tanto, ¿hay alguna manera, en RUNTIME en un APPLET para cambiar el tamaño del montón?

Respuesta

10

Puede agregar parámetros a la etiqueta del applet. Pero el parámetro que le interesa está disponible solo en Java6 u10 o posterior.

Ejemplo:

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

Aquí más información http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#JAVA_ARGUMENTS

+0

memoria adicional también se pueden definir para applets desplegadas a través. JNLP, pero este es el método más simple. Tenga en cuenta especialmente los dos últimos enlaces en el applet Wiki (http://stackoverflow.com/tags/applet/info). Buena llamada en el enlace y ejemplo. (susurra) con suerte algunos de los otros colaboradores de este hilo aprenderán una o dos cosas. ;) –

2

AFAIK, solo el usuario puede cambiar la configuración del montón de JRE. Applet no puede cambiar esta configuración.

Actualización:

parece que en las últimas versiones de JDK esto es posible. Mira: How can I start an Java applet with more memory?

Update2:

ajustes de la memoria sólo se pueden ajustar para aplicaciones JNLP, no para applets.

1

Si no está especificado en la línea de comandos, debe obtenerlo de la configuración de JVM. Entonces, cuando implemente su applet en la web, dependerá de la configuración de memoria que tenga en su computadora cuando la ejecute. Por lo general, está configurado de 60 a 90 Mb por defecto, así que intente mantenerlo por debajo.

Considere las ramificaciones si el applet pudiera cambiar esas configuraciones ... qué más podría ser capaz de cambiar. Eso es solo pedir un exploit de seguridad con el tiempo, y Java apunta a la seguridad antes de la funcionalidad :)

1

la JVM puede haber comenzado mucho antes que usted Applet. Ahora es demasiado tarde para cambiar el tamaño del montón. Pruebe Java Web Start donde puede controlar eso, generando una nueva JVM para su Applet/aplicación.

Cuestiones relacionadas