Qual o problema de fato?
Inúmeros desenvolvedores de sistemas em Java reclamam todos os dias de problemas com uma exceção que é tida como a exceção da memória: StackOverFlowError. A descrição oficial da exceção diz que ela é “lançada quando um estouro de pilha ocorre porque um aplicativo usou os recursos da máquina muito profundamente.”. Basicamente ele quis dizer que a aplicação Java consumiu muita memória em vista de algum processamento pesado e o Java não suportou, tendo em vista o seu limite máxima de memória usada.
Isso mesmo: limite de memória. Pense como seria se as linguagens não definissem isso e o seu aplicativo executasse um loop infinito com processamento pesado de recursos. A memória RAM do seu computador seria consumida até chegar ao fim.
Entretanto, em determinados casos se faz necessário, de fato, aumentar a memória base da JVM, uma vez que determinadas operações na são atendidas com a mesma, principalmente se você estiver lidando com o contexto web.
Como configurar?
Acesse no Windows 7 o menu “Iniciar > Painel de Controle > Java”. Isso irá abrir a tela de “Painel de Controle do Java”. Selecione a aba “Java” e clique no botão “Exibir...” e a tela da Figura 1 irá aparecer.
Figura 1: Configurações do JRE
O campo de nome “Parâmetros do tempo de execução” existe para receber algumas configurações pré-definidas para o Java. Veja a lista de opções válidas:
- Xmx512m para 512MB de memória para o Java.
- Xmx1024m para 1GB de memória para o Java.
- Xmx2048m para 2GB de memória para o Java.
- Xmx3072m para 3GB de memória para o Java.
Então, configure a opção do campo em questão para o valor “-Xmx512m” e clique em “OK”.
Logo após clique em “Aplicar” para que a ação seja associada ao ambiente e pronto. Finalizado.
Extras
- Nenhum reinício do computador é necessário depois de modificar a memória Java.
- Este método também pode ser usado para o Windows 8.
- Esta é uma quantidade "temporária" de memória que está disponível para aplicações Java quando você está executando-as. Ele não "rouba" ou permanentemente deduz da memória do computador. É apenas uma garantia para a JVM.
- Conforme falado, se o Java não consegue encontrar memória suficiente despacha uma mensagem de "exceção" ao Windows como: "Exception in thread" main "java.lang.OutOfMemoryError: Java heap space".
- O valor que você selecionar depende da quantidade de memória do computador e quanto de memória todos os processos em execução consumem.
- Este método, com algumas modificações, também pode ser usado para Windows Xp.