即使有足够的可用 RAM,也会出现 java.lang.OutOfMemoryError

标签 java eclipse eclipse-plugin out-of-memory eclipse-rcp

我正在尝试以编程方式在 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/

相关文章:

java - android studio中的应用程序源代码给了我很多错误

java - 在 Spring Boot 中使用 Tomcat 启用 HTTP2

java - 读取输入流并写入文件

java - 安卓依赖配置

mysql - 上传图像的 javafx 质量

java - 如何在java中设置八进制值?

android - 二进制充气机 :Error inflating class android. support.design.widget.NavigationView

eclipse - 我可以将三星智能电视的 sdk 安装到现有的 Eclipse 中吗?

java - 如何在 SourceViewer 中显示查找替换对话框(快捷键 Ctrl+F)

java - 使用 xml 隐藏 eclipse 中的透视图