我有一个应用程序,它从.csv文件加载数据并将其显示在表中。该应用程序可以在Windows中正确运行所有文件(不管它有多大),但它只适用于Mac上低于8MB的文件,任何大于该文件的文件都会抛出“java.lang.OutOfMemoryError:Java堆空间“。我对应用程序进行了调试,以确保它正在读取.csv文件,并且确实如此,但是一段时间后,jush因此错误而崩溃。Mac上的Java OutOfMemory,在Windows上工作
我做了一些研究,尝试使用-Xmx和-Xms来增加Java堆大小,但仍然得到相同的错误。
下面的代码就是增加了一些与信息到mainHashtable阵列后的应用程序崩溃:
while(reader.readRecord()){
ArrayList<CSVEntry> list = new ArrayList<CSVEntry>();
for(int i = 0; i < colscount; i++){
CSVEntry entry = new CSVEntry(headerNames[i], reader.get(i));
list.add(entry);
}
mainHashtable.put(recordcount, list);
recordcount++;
}
,帮助我解决这个问题将非常乐意知道的任何建议。
如何启动应用程序?从命令行?从IDE? – GarlicFries
我非常肯定它是某种配置,其中Java允许特定的内存限制,并且您只需要增加该限制即可。 – Sam
我正在创建一个jar文件在Mac上运行它,但现在我正在从IDE启动应用程序以尝试修复错误。 –