600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 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

时间:2018-12-11 09:12:37

相关推荐

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

一、问题描述

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

Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetExceptionat javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1774)at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)at com.sun.positeEventHandler.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.positeEventDispatcher.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.positeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)at com.sun.positeEventHandler.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.positeEventDispatcher.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.InvocationTargetExceptionat 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 moreCaused by: javafx.fxml.LoadException: /D:/xxxx/xxxx/analysis/target/classes/jxbrowser.fxmlat 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 moreCaused 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.<init>(SourceFile:216)at com.teamdev.jxbrowser.chromium.Browser.<init>(SourceFile:184)at com.teamdev.jxbrowser.chromium.Browser.<init>(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("");CookieStorage cookieStorage = browser.getCookieStorage();// Create and add new cookieint oneHourInMilliseconds = 36000000;int microsecondsOffset = 1000;// Cookie will be alive during one hour starting from nowlong expirationTimeInMicroseconds = (System.currentTimeMillis() +oneHourInMilliseconds) * microsecondsOffset;// cookieStorage.setCookie("", "mycookie", "myvalue",//".", "/", expirationTimeInMicroseconds, false, false);List<Cookie> cookies = cookieStorage.getAllCookies();for (Cookie cookie : cookies) {System.out.println("cookie = " + cookie);}

二、解决方法

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。