通过使用从JavaScript调用Java来刷新浏览器时,JxBrowser Chrome内存泄漏

时间:2017-01-23 09:34:35

标签: javascript java jxbrowser

我在使用JxBrowser从JavaScript调用Java时做了一个简单的演示,然后我发现了这个现象,

public static void main(String[] args) {
  // TODO Auto-generated method stub
  BrowserPreferences.setChromiumSwitches("--remote-debugging-port=9222");

  Browser browser1 = new Browser();
  BrowserView browserView1 = new BrowserView(browser1);

  // Gets URL of the remote Developer Tools web page for browser1 instance.
  String remoteDebuggingURL = browser1.getRemoteDebuggingURL();

  browser1.addScriptContextListener(new ScriptContextAdapter() {
    @Override
    public void onScriptContextCreated(ScriptContextEvent event) {
      Browser browser = event.getBrowser();
      JSValue window = browser.executeJavaScriptAndReturnValue("window");
      window.asObject().setProperty("java", new JavaObject());
    }
  });

  JFrame frame1 = new JFrame();
  frame1.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  frame1.add(browserView1, BorderLayout.CENTER);
  frame1.setSize(700, 500);
  frame1.setLocationRelativeTo(null);
  frame1.setVisible(true);

  browser1.loadURL("https://www.baidu.com");

  // Creates another Browser instance and loads the remote Developer
  // Tools URL to access HTML inspector.
  Browser browser2 = new Browser();
  BrowserView browserView2 = new BrowserView(browser2);

  JFrame frame2 = new JFrame();
  frame2.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  frame2.add(browserView2, BorderLayout.CENTER);
  frame2.setSize(700, 500);
  frame2.setLocationRelativeTo(null);
  frame2.setVisible(true);

  browser2.loadURL(remoteDebuggingURL);
}

我运行代码并刷新chrome很多次然后 before refresh

refresh 2 Minute

如果用户其他网络拥有更多资源或图片,内存增加更快,想问一下这个问题是否可以解决 谢谢大家! 我期待着回复!

1 个答案:

答案 0 :(得分:0)

我检查了你的例子,我确认这是JxBrowser中的一个问题。我在问题跟踪系统中创建了相应的任务。我们将在下一个JxBrowser版本中修复此问题。我将告诉您何时可以下载带有修复程序的新版本。