Lendo células excel dá estouro de memória... [RESOLVIDO!]

Gente, tô usando a classe JExcelAPI para ler arquivos do excel.

Ocorre que minha planilha é enorrrrrrrrme… com 65 mil linhas e 8 colunas,

resultado: quando chamo-a dentro do meu aplicativo java dá o erro de estouro de memória:

java.lang.OutOfMemoryError: Java heap space

como resolver isso? (Uso Netbeans)!

Bom dia!
Vc precisará implementar sua lógica pensando na quantidade de objetos criados e na memória utilizada, vc precisa de todos esses registros na memória ao mesmo tempo?

vc tem que aumentar o Heap Size da máquina virtual ao executar seu codigo java.

Em propriedades do projeto, vá em Run -> VM Options e coloque as opções que vão aumentar a memória da VM.
Veja qual opção que vc precisa aqui: http://blogs.oracle.com/watt/resource/jvm-options-list.html

vc vai precisar das opções -Xms e -Xmx

Isso já foi muito discutido. Dê uma pesquisada. Vou deixar dois tópicos que achei que, podem lhe ajudar de alguma forma:

bom dia gente!

FieroddPJ, eu preciso de todos os dados na memória pois estou lendo a planilha para transporta-la para o banco h2.

Valeu pelas dicas ai gente!

Vou tentar implementa-las…

eliangela e Andre Rosa,

A solução que vcs apresentaram foi perfeita!

Aumentei a quantidade aqui e agora já lê!

valeu!

Gente, só mais uma dúvida:

Eu tenho como definir o aumento da memória em tempo de execução?

Digo isso por que este é o único momento em que meu sistema vai precisar usar essa quantidade (coloquei 512m).

no restante o padrão deve resolver?

como eu setei nas propriedades do projeto tenho como alterar em tempo de execução ou não (uma vez estabelecido, estabelecido para sempre?)

[quote=SandroSoftwares]Eu tenho como definir o aumento da memória em tempo de execução?

Digo isso por que este é o único momento em que meu sistema vai precisar usar essa quantidade (coloquei 512m).[/quote]
Tenho quase certeza que não. O que vc pode fazer é setar somente o heap máximo como 512m. Não configure a heap inicial que deve funcionar. Assim ele só vai aumentar a memória quando ele precisar.

quando vc seta estas configurações nas propriedades do projeto, é só pro Netbeans fazer na hora de executar, ou seja, elas não vão junto com o projeto compilado.
Quando vc terminar o projeto e for executar ele fora do Netbeans, vc vai ter que fazer um EXE ou um BAT com a seguinte chamada: java -jar

Espero ter ajudado

é mesmo eliangela?

eu pensei que estabelecendo isso no netbeans o jar já ia configurado…

vou ter que fazer no .bat então…