尝试在 Java 应用程序中打开一个大文件(大约 128KB)会导致 Map Failed 错误:
> java.io.IOException: Map failed at > uk.ac.starlink.table.QueueTableSequence.nextTable(QueueTableSequence.java:79) > at > uk.ac.starlink.table.StarTableFactory$1.nextTable(StarTableFactory.java:990) > at > uk.ac.starlink.table.gui.TableLoadWorker.run(TableLoadWorker.java:143) > Caused by: java.io.IOException: Map failed at > sun.nio.ch.FileChannelImpl.map(Unknown Source) at > uk.ac.starlink.fits.SimpleMappedInput.<init>(SimpleMappedInput.java:41) > at > uk.ac.starlink.fits.InputFactory$2.createInput(InputFactory.java:130) > at > uk.ac.starlink.fits.BintableStarTable$RandomBintableStarTable.<init>(BintableStarTable.java:550) > at > uk.ac.starlink.fits.BintableStarTable.createTable(BintableStarTable.java:399) > at > uk.ac.starlink.fits.FitsTableBuilder.attemptReadTableData(FitsTableBuilder.java:424) > at > uk.ac.starlink.fits.FitsTableBuilder.attemptReadTable(FitsTableBuilder.java:393) > at > uk.ac.starlink.fits.FitsTableBuilder.access$000(FitsTableBuilder.java:46) > at > uk.ac.starlink.fits.FitsTableBuilder$MultiLoadWorker.multiLoad(FitsTableBuilder.java:588) > at > uk.ac.starlink.fits.FitsTableBuilder$MultiLoadWorker.run(FitsTableBuilder.java:567) > Caused by: java.lang.OutOfMemoryError: Map failed at > sun.nio.ch.FileChannelImpl.map0(Native Method) ... 10 more
我尝试在此站点上搜索答案,但我能找到的唯一类似案例是将代码加载到框架中。以这个为例,Java Large File Uploads throws java.io.IOException: Map failed。我正在使用的应用程序是一个 .jar 文件(更多信息在这里 - http://www.star.bris.ac.uk/~mbt/topcat/),我试图加载的文件是 .jar 文件。适合类型。
你能给我一些关于这个问题的建议吗?我正在使用 JRE 构建 1.8.0_73
更新:该错误似乎仅在我增加最大堆大小时出现。保持默认设置时一切正常。