jxbrowser错误The Chromium profile directory is already used/locked by another BrowserContext instance

jxbrowser错误The Chromium profile directory is already used/locked by another BrowserContext instance一 问题描述 nbsp 在 JAVAFX 中使用 jxbrowser 第一次打开一个窗口 然后又打开一个窗口就出现如下错误 nbsp Exceptionint JavaFXApplic java lang RuntimeExcep java lang reflect InvocationTa atjavafx fxml

一、问题描述

 

在JAVA FX中使用jxbrowser,第一次打开一个窗口,然后又打开一个窗口就出现如下错误:

 

Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1774) at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Node.fireEvent(Node.java:8413) at javafx.scene.control.Button.fire(Button.java:185) at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182) at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96) at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89) at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Scene$MouseHandler.process(Scene.java:3757) at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485) at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762) at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:381) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$354(GlassViewEventHandler.java:417) at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389) at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:416) at com.sun.glass.ui.View.handleMouseEvent(View.java:555) at com.sun.glass.ui.View.notifyMouse(View.java:937) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71) at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275) at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1771) ... 48 more Caused by: javafx.fxml.LoadException: /D:/xxxx/xxxx/analysis/target/classes/jxbrowser.fxml at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2579) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104) at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097) at com.fendo.analysis.AnalysisController.openJxBrowser(AnalysisController.java:251) ... 58 more Caused by: com.teamdev.jxbrowser.chromium.BrowserException: The Chromium profile directory is already used/locked by another BrowserContext instance or process. at com.teamdev.jxbrowser.chromium.Browser. 
  
    (SourceFile:216) at com.teamdev.jxbrowser.chromium.Browser. 
   
     (SourceFile:184) at com.teamdev.jxbrowser.chromium.Browser. 
    
      (SourceFile:151) at com.fendo.analysis.jxbrowser.JxBrowserController.initialize(JxBrowserController.java:51) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548) ... 66 more 
     
    
  

代码如下:

BrowserContextParams params = new BrowserContextParams("D:\\IDEA_work\\javafx\\jxbrowser\\cookie"); BrowserContext context = new BrowserContext(params); Browser browser = new Browser(context); BrowserView view = new BrowserView(browser); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.add(view, BorderLayout.CENTER); frame.setSize(800, 600); frame.setLocationRelativeTo(null); frame.setVisible(true); browser.loadURL("https://www.baidu.com"); CookieStorage cookieStorage = browser.getCookieStorage(); // Create and add new cookie int oneHourInMilliseconds = ; int microsecondsOffset = 1000; // Cookie will be alive during one hour starting from now long expirationTimeInMicroseconds = (System.currentTimeMillis() + oneHourInMilliseconds) * microsecondsOffset; // cookieStorage.setCookie("http://www.baidu.com", "mycookie", "myvalue", // ".baidu.com", "/", expirationTimeInMicroseconds, false, false); List 
  
    cookies = cookieStorage.getAllCookies(); for (Cookie cookie : cookies) { System.out.println("cookie = " + cookie); } 
  

 

二、解决方法

 

这是由于浏览器使用相同配置文件目录造成的,也就是上面的BrowserContext,多次初始化时,使用的都是BrowserContext这一个用的是同一个目录。官网提供了一个解决方法:https://jxbrowser.support.teamdev.com/support/solutions/articles/-creating-browser

多个窗口浏览时,初始化Browser时使用不同的目录就行了。

jxbrowser错误The Chromium profile directory is already used/locked by another BrowserContext instance

 

jxbrowser错误The Chromium profile directory is already used/locked by another BrowserContext instance

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222803.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午2:59
下一篇 2026年3月17日 下午3:00


相关推荐

  • 从零配置 OpenClaw 飞书机器人:我的踩坑与成功之旅

    从零配置 OpenClaw 飞书机器人:我的踩坑与成功之旅

    2026年3月13日
    3
  • vue html编辑器_基于vue的低代码编辑器

    vue html编辑器_基于vue的低代码编辑器最近需要用到富文本编辑器插件,项目是用VUE框架搭建的所以这里就专门介绍几款有关vue的富文本插件:项目中趟过了很多坑,特记下供大家借鉴,希望大家不要重滔我的复撤本文章只介绍插件具体使用方式可自行百度由于编辑器编辑的内容需要在小程序能完美显示,并且能和小程序富文本编辑器完全打通1.百度的ueditor(网上都这么说)(没有缘分,果断放弃)优势:开源,插件多,基本满足各种需求,由百度we…

    2022年10月14日
    4
  • Python+pycharm安装dlib库

    Python+pycharm安装dlib库下载 dilb 库写在前面 尽量要用对应 Python 版本的库已经安装好 Python3 6 1 和 pycharmdlib 版本下载官网文件名 dlib 19 6 1 cp36 cp36m win amd64 whl 安装 dlib 库下载好之后我们将这个文件拷贝到 Python 目录下的 Scripts 文件加里例如 E python Scripts 接下来使用 Python 自带的 pip 进行安装 1

    2026年3月27日
    2
  • linux命令详解之ls命令

    linux命令详解之ls命令ls 命令概述 ls 命令用于显示文件目录列表 和 Windows 系统下 DOS 命令 dir 类似 当执行 ls 命令时 默认显示的只有非隐藏文件的文件名 以文件名进行排序及文件名代表的颜色显示 当不加参数时 默认列出当前目录的列表信息 ls 命令使用频率非常高 参数也非常多 多达四五十个 本文只介绍一部分常用的参数 其他参数可以通过 man 命令查看帮助手册 说明 在 linux 下 文件名以点 开头表示该文件为隐藏文件 如

    2026年3月18日
    2
  • 手把手教你搭建第一个Spring Batch项目

    手把手教你搭建第一个Spring Batch项目写在前面:我是「沸羊羊_」,昵称来自于姓名的缩写fyy,之前呕心沥血经营的博客因手残意外注销,现经营此账号。本人是个小菜,正向着全栈工程师的方向努力着,文章可能并不高产,也很基础,但每写一篇都在用心总结,请大佬勿喷。如果您对编程有兴趣,请关注我的动态,一起学习研究。感谢每位读者!文章目录一、概述二、实例1、新建springboot项目2、springboot项目配置一、概述SpringBatch是一个轻量级,全面的批处理框架。一个典型的批处理过程可能是:从数据库,文件或.

    2022年5月8日
    50
  • 堆栈指针寄存器-SP详解

    堆栈指针寄存器-SP详解基本概念 堆栈指针寄存器 SP 是什么 答 堆栈是计算机存储数据的一种数据结构 SP 的作用就是指示当前要出栈或入栈的数据 并在操作执行后自动递增或递减 至于是入栈递增还是入栈递减 就是由 CPU 的生产厂家确定 通常由一块存储区和指向该存储区的指针 SP 构成 1 在堆栈中保存数据叫入栈 压栈 从堆栈中读取数据叫出栈 2 堆栈是一种具有 先进后出 后进先出 LIFO

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号