Error java.lang.out from memory

We are 12th grade cbse class students. we are faced with this exception, and we do not know how to fix this exception.

run: Exception in thread "Image Fetcher 1" java.lang.OutOfMemoryError: Java heap space at java.awt.image.DataBufferInt.<init>(DataBufferInt.java:41) at java.awt.image.Raster.createPackedRaster(Raster.java:458) at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1015) at sun.awt.image.ImageRepresentation.createBufferedImage(ImageRepresentation.java:230) at sun.awt.image.ImageRepresentation.setPixels(ImageRepresentation.java:484) at sun.awt.image.ImageDecoder.setPixels(ImageDecoder.java:120) at sun.awt.image.JPEGImageDecoder.sendPixels(JPEGImageDecoder.java:97) at sun.awt.image.JPEGImageDecoder.readImage(Native Method) at sun.awt.image.JPEGImageDecoder.produceImage(JPEGImageDecoder.java:119) at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:246) at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172) at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136) Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space at java.awt.image.DataBufferInt.<init>(DataBufferInt.java:41) at java.awt.image.Raster.createPackedRaster(Raster.java:458) at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1015) at sun.awt.image.SunVolatileImage.getBackupImage(SunVolatileImage.java:225) at sun.awt.image.VolatileSurfaceManager.getBackupSurface(VolatileSurfaceManager.java:252) at sun.awt.image.VolatileSurfaceManager.initialize(VolatileSurfaceManager.java:108) at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:72) at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:82) at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:93) at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:87) at sun.awt.windows.WComponentPeer.createVolatileImage(WComponentPeer.java:604) at java.awt.Component.createVolatileImage(Component.java:3316) at java.awt.Component$BltBufferStrategy.createBackBuffers(Component.java:4038) at java.awt.Component$BltBufferStrategy.<init>(Component.java:3983) at java.awt.Component$BltSubRegionBufferStrategy.<init>(Component.java:4236) at java.awt.Component.createBufferStrategy(Component.java:3567) at java.awt.Window.createBufferStrategy(Window.java:3012) at javax.swing.BufferStrategyPaintManager$BufferInfo.createBufferStrategy(BufferStrategyPaintManager.java:844) at javax.swing.BufferStrategyPaintManager$BufferInfo.createBufferStrategy(BufferStrategyPaintManager.java:795) at javax.swing.BufferStrategyPaintManager$BufferInfo.getBufferStrategy(BufferStrategyPaintManager.java:728) at javax.swing.BufferStrategyPaintManager.prepare(BufferStrategyPaintManager.java:505) at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:263) at javax.swing.RepaintManager.paint(RepaintManager.java:1217) at javax.swing.JComponent.paint(JComponent.java:1013) at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21) at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60) at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97) at java.awt.Container.paint(Container.java:1780) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714) at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128) Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space at java.awt.image.DataBufferInt.<init>(DataBufferInt.java:41) at java.awt.image.Raster.createPackedRaster(Raster.java:458) at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1015) at sun.awt.image.SunVolatileImage.getBackupImage(SunVolatileImage.java:225) at sun.awt.image.VolatileSurfaceManager.getBackupSurface(VolatileSurfaceManager.java:252) at sun.awt.image.VolatileSurfaceManager.initialize(VolatileSurfaceManager.java:108) at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:72) at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:82) at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:93) at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:87) at sun.awt.windows.WComponentPeer.createVolatileImage(WComponentPeer.java:604) at java.awt.Component.createVolatileImage(Component.java:3316) at java.awt.Component$BltBufferStrategy.createBackBuffers(Component.java:4038) at java.awt.Component$BltBufferStrategy.<init>(Component.java:3983) at java.awt.Component$BltSubRegionBufferStrategy.<init>(Component.java:4236) at java.awt.Component.createBufferStrategy(Component.java:3567) at java.awt.Window.createBufferStrategy(Window.java:3012) at javax.swing.BufferStrategyPaintManager$BufferInfo.createBufferStrategy(BufferStrategyPaintManager.java:844) at javax.swing.BufferStrategyPaintManager$BufferInfo.createBufferStrategy(BufferStrategyPaintManager.java:795) at javax.swing.BufferStrategyPaintManager$BufferInfo.getBufferStrategy(BufferStrategyPaintManager.java:728) at javax.swing.BufferStrategyPaintManager.prepare(BufferStrategyPaintManager.java:505) at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:263) at javax.swing.RepaintManager.paint(RepaintManager.java:1217) at javax.swing.JComponent._paintImmediately(JComponent.java:5070) at javax.swing.JComponent.paintImmediately(JComponent.java:4880) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:803) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714) at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space at java.awt.image.DataBufferInt.<init>(DataBufferInt.java:41) at java.awt.image.Raster.createPackedRaster(Raster.java:458) at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1015) at sun.awt.image.SunVolatileImage.getBackupImage(SunVolatileImage.java:225) at sun.awt.image.VolatileSurfaceManager.getBackupSurface(VolatileSurfaceManager.java:252) at sun.awt.image.VolatileSurfaceManager.initialize(VolatileSurfaceManager.java:108) at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:72) at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:82) at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:93) at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:87) at sun.awt.windows.WComponentPeer.createVolatileImage(WComponentPeer.java:604) at java.awt.Component.createVolatileImage(Component.java:3316) at java.awt.Component$BltBufferStrategy.createBackBuffers(Component.java:4038) at java.awt.Component$BltBufferStrategy.<init>(Component.java:3983) at java.awt.Component$BltSubRegionBufferStrategy.<init>(Component.java:4236) at java.awt.Component.createBufferStrategy(Component.java:3567) at java.awt.Window.createBufferStrategy(Window.java:3012) at javax.swing.BufferStrategyPaintManager$BufferInfo.createBufferStrategy(BufferStrategyPaintManager.java:844) at javax.swing.BufferStrategyPaintManager$BufferInfo.createBufferStrategy(BufferStrategyPaintManager.java:795) at javax.swing.BufferStrategyPaintManager$BufferInfo.getBufferStrategy(BufferStrategyPaintManager.java:728) at javax.swing.BufferStrategyPaintManager.prepare(BufferStrategyPaintManager.java:505) at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:263) at javax.swing.RepaintManager.paint(RepaintManager.java:1217) at javax.swing.JComponent._paintImmediately(JComponent.java:5070) at javax.swing.JComponent.paintImmediately(JComponent.java:4880) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:803) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714) at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space BUILD SUCCESSFUL (total time: 25 seconds) 
+6
java memory
source share
5 answers

Increase a bunch of space. Java uses 64 MB heap memory unless you specify a higher maximum. Start your application as follows:

 java -Xmx128m MyClass 

to have 128 MB.


It looks like you are running the application in the ant assembly. I would separate the building and the execution. Let ant create a batch file that will be used to run the application.

Now you may need to increase the heap of space for the ant itself. This is done using an environment variable (windows solution):

 set ANT_OPTS=-Xms512m -Xmx512m 

additional literature

+8
source share

You can set the heap size using the following options:

  -Xms32m -Xmx128m 

check VM parameters here:

http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

But I will ask you to check that your heap is swallowing you. You can do this using profiling tools such as:

+2
source share

Your JVM runs out of empty space. Try using the -Xmx switch in the JVM to increase the amount of free space for your program.

 java -Xmx256m YourClassName 
0
source share

By default, without JVM start modifications, you have 128 m heaps.

The memory allocated by your program is greater than 128 m.

You can increase the heap space limits:

 java -Xms<initial heap size> -Xmx<maximum heap size> 
0
source share

Other answers are not complete and complete answers. This is just a streak. The main reason is that you create an ImageIcon object that creates these threads in the background. I also had this problem due to corrupt jpg. It doesn’t matter if you increase the size of the memory to 1 terabyte, if the user uploads a damaged image, this can take up everything. Instead, use ImageIO and catch the error from memory around the creation:

 try { // catch OutOfMemoryError for corrupt JPG BufferedImage inImage = ImageIO.read(new File(jpgAbsPath)); } catch (OutOfMemoryError oome) { logger.log(Level.SEVERE, "Out of memory error when trying to read image " + jpgAbsPath +" .", oome); return; } 

See here for more details: http://www.coderanch.com/t/376018/java/java/Image-Fetcher-Threads http://docs.oracle.com/javase/tutorial/2d/images/loadimage.html

0
source share

All Articles