Cuando ejecuta un programa a través de la línea de comando, puede usar java -Xms -Xmx
para especificar los tamaños de montón. Si el programa se va a ejecutar haciendo doble clic en un archivo .jar, ¿hay alguna manera de utilizar más montón que el estándar?Asigne más espacio de montón a un jar de Java
Respuesta
No. Es por eso que a menudo hago un archivo .bat o .sh con esos parámetros y los usuarios directos lo ejecutan en lugar del .jar. Desafortunadamente, es un poco desagradable tener que abrir una ventana de símbolo del sistema, pero eso no se puede evitar.
Como beneficio adicional, si la aplicación se bloquea, puede dirigir a los usuarios a poner pause
en el archivo por lotes (o hágalo usted mismo), y luego se puede ver ninguna traza de la pila que se produce.
Editar: También es posible usar una envoltura ejecutable como JSmooth o Launch4J en lugar de un archivo por lotes. Sin embargo, perdería compatibilidad con plataformas cruzadas.
En lugar de hacer doble clic en el archivo .jar directamente, puede usar un archivo por lotes que ejecute java -jar -Xms -Xmx your_file.jar
. Desde el punto de vista del usuario, es lo mismo, pero te da más control sobre el comando que realmente se ejecuta.
+1 por dar la misma respuesta que hice. :) –
Puede usar JSmooth o un contenedor similar, que crea un archivo EXE que inicia la JVM con los parámetros necesarios. De esta forma, puede evitar tener un archivo .bat y su cuadro de diálogo de consola. Todavía una manera más es iniciar el programa real en un nuevo proceso utilizando Runtime.exec o ProcessBuilder.
Puede hacer que el jar se inicie de nuevo con Runtime.getRuntime(). Exec() con las opciones que desee. El jar puede contener más de un método main() (en diferentes clases) y puede tener una llamada a la otra a través de un exec().
Otra buena opción (aunque no es tan fácil averiguar cuánta memoria hay disponible para usar). +1 –
- 1. No se puede ejecutar dex: espacio de montón de Java espacio de montón de Java
- 2. java.lang.OutOfMemoryError: espacio en el montón de Java
- 3. dinámicamente creciente espacio en el montón de Java
- 4. Error de compilación java.lang.OutOfMemoryError: espacio en el montón de Java
- 5. espacio en el montón de Java en netbeans ... ¡pero ya he aumentado el tamaño del montón!
- 6. Subiendo a Blobstore da un montón de Java OutOfMemoryError
- 7. Java: No se puede reservar espacio suficiente para montón de objetos
- 8. Espacio en el montón Eclipse (error de memoria)
- 9. sobrecarga para un montón de montón vacío
- 10. Agregar imagen a JAR Java
- 11. Mahout se queda sin espacio en el montón
- 12. ¿Es un archivo Java JAR similar a un conjunto .Net?
- 13. ¿Cuál es el más pequeño que puede hacer un montón de Java (Oracle JVM)?
- 14. ¿El montón es realmente un montón?
- 15. ¿Cómo puedo darle al compilador Intellij más espacio en el montón?
- 16. ¿Hay una implementación Java estándar de un montón de Fibonacci?
- 17. Código de Ruby a JAR
- 18. Archivo enorme en Clojure y error de espacio en montón Java
- 19. ¿Por qué los subprocesos comparten el espacio de montón?
- 20. Referencia de clase base: asigne otro tipo a ella
- 21. Archivo ejecutable Java de JAR
- 22. ¿Cómo importo jar a mi programa java?
- 23. Se está quedando sin espacio en el montón
- 24. java.lang.OutOfMemoryError: espacio en el montón de Java al leer Excel con Apache POI
- 25. Agregar un JAR a una biblioteca Eclipse Java
- 26. agregue un jar a maven exec: classpath java
- 27. Ejecutar un archivo JAR sin llamar directamente a 'java`
- 28. Acceso a Java jar desde Delphi
- 29. Permisos de volcado del montón Java
- 30. Analizar dependencias JAR en un proyecto Java
@mmyers: ¡Maldice tus deditos rápidos! ¡Me derrotaron por 54 segundos! – Welbog
Lo siento, veo que estabas ocupado editando la pregunta. (Creo que es la primera vez que alguien ha maldecido mis deditos rápidos ...) –
También podría usar algo como JSmooth: http://jsmooth.sourceforge.net/ – millimoose