首页 > 解决方案 > JCEF:CefApp 处置和重启

问题描述

我在我的应用程序中使用 JCEF(支持 Java Chromium 的框架)。

场景是当用户单击“启动”按钮时,我必须启动浏览器窗口,当他关闭窗口时,我必须退出浏览器并进行清理。

代码是:

   addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e) {
                    try {
                        CefApp.getInstance().dispose();
                    } catch (Exception ex) {
                        Exceptions.printStackTrace(ex);
                    } finally {
                        dispose();
                    }
                }
            }); 

调用dispose()会使cefApp 状态变为TERMINATED。因此,当用户再次单击启动时,我尝试初始化 cefApp 它说

java.lang.IllegalStateException: CefApp was terminated

因为CefApp.getInstance()如果状态为 TERMINATED,则会引发此错误。

解决这个问题的处理和重新启动 CefApp 的方法是什么?

标签: javachromium-embedded

解决方案


怎么样,找到一种不关闭 JCEF 的方法,而只是 Set.Visible(false)


推荐阅读