Compilefile.this.compileThread = new Thread() {
@Override
public void run() {
try {
synchronized (this) {
Application.getDBHandler().setAutoCommit(false);
MIBParserUtils.getDefaultMibsMap();
compileSelectedFiles();
Application.getDBHandler().CommitTrans();
Application.getDBHandler().setAutoCommit(true);
}
}
catch(OutOfMemoryError exp) {
JOptionPane.showMessageDialog(null, "Compilation Stopped.. Insufficient Memory!!!");
CompileMib.this.compileThread.interrupt();
System.gc();
dispose();
NmsLogger.writeDebugLog(exp);
}
finally {
}
}
我试图在一个线程中编译一些文件。 UI选择超过200个文件进行编译。在编译过程中,由于Eclipse中的内存足够,发生了一个OutOfMemoryError
。我想停止线程并显示一个消息框,并在我的应用程序中放置编译窗口。我写了下面的代码,但它不工作。我可以捕捉异常并处理它,或者有更好的解决方案吗?编译文件时出现内存不足异常
一旦达到OOM状态,有一个在应用程序的状态没有保证。所有投注都关闭。 –
你不能在eclipse.ini中为eclipse jvm设置更多内存吗? – kamuflage661
我可以处理catch块中的异常吗? – Nikhil