我正在尝试以编程方式在 Eclipse 中打开文件。该文件的关联编辑器是在外部插件中定义的,我无法控制源代码。
我使用下面显示的代码片段来打开该文件。然而我总是得到
异常:从线程“AWT-Windows”中的 UncaughtExceptionHandler 抛出 java.lang.OutOfMemoryError
我尝试增加可用于 eclipse 运行配置的内存,但这没有帮助。有什么想法会导致这种情况吗?
private void openFiles(final IPath filePath ) {
PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
IWorkspace workspace = ResourcesPlugin.getWorkspace();
IFile iFileInput = workspace.getRoot().getFileForLocation(filePath);
IEditorInput editorInput = new FileEditorInput(iFileInput);
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
IWorkbenchPage page = window.getActivePage();
try {
iFileInput.refreshLocal(IResource.DEPTH_INFINITE, null);
} catch (CoreException e1) {
e1.printStackTrace();
}
try {
String editorID = "xxxxx";
IDE.openEditor(page, editorInput, editorID);
} catch (PartInitException e) {
e.printStackTrace();
}
}
});
}
最佳答案
尝试增加堆内存大小:
如果您开始使用命令行
java -Xms<initial heap size> -Xmx<maximum heap size>
您也可以通过 eclipse 来完成此操作,只需在 eclipse.ini 中或通过 eclipse gui 配置添加以下行:
-Xms1024m
-Xmx1024m
-XX:MaxPermSize=256M
关于即使有足够的可用 RAM,也会出现 java.lang.OutOfMemoryError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25348511/