Yaklaşık 650 MB’lık bir text dosyasını okumaya çalışınca aşağıdaki hatayı aldım:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
Java sanal makinesi varsayılan olarak 256 MB maksimum bellek ayırıyor. Programınız ihtiyacı bunun üzerinde olunca yukarıdaki hatayı alıyorsunuz. Ancak JVM’ye aşağıdaki komutlarla ilk ve maksimum bellek miktarını belirtebiliyorsunuz.
java -Xmx2048m -Xms256m
Yukarıdaki komutta program için başlangıçta 256 MB ve en fazla da 2048 MB bellek istemiş oluyoruz. Ancak bu komut satırından programımızı çalıştırırken geçerli bir durum. Mesela aşağıdaki javaprogrami
isimli program oku.txt
dosyasını girdi olarak alıyor ve kullanabileceği maksimum bellek miktarı 2 GB.
$ java -Xmx2G javaprogrami oku.txt
Aynı şeyi Netbeans’te yapmak için projeye sağ tıklayın -> properties -> run -> VM Options
Not: Bir de netbeans.conf
diye bir dosya var. Burada da benzer ayarlar var. Ancak bu ayarlar kendisi de bir Java programı olan Netbeans’in kullanabileceği bellek boyutu ile ilgili. Netbeans üzerinde çalışacak Java programız ile ilgili değil. O yüzden bu ayarlarla oynamamanızı tavsiye ederim.
Umarım faydalı olmuştur. Herkese kolay gelsin
Bir cevap yazın