gpt4 book ai didi

java - 带有 Java Swing(IntelliJ 插件)的 JxBrowser - "Received signal 10 BUS_ADRERR"

转载 作者:行者123 更新时间:2023-11-30 10:21:47 27 4
gpt4 key购买 nike

我正在编写一个 IntelliJ 插件,并试图通过 Java Swing 将 JxBrowser 集成到插件的工具窗口中。

我正在使用 toolWindow 扩展来简化工具窗口集成。

plugin.xml

  <extensions defaultExtensionNs="com.intellij">
<toolWindow id="pluginid" anchor="right" factoryClass="com.solutionloft.codeclippy.MainWindowFactory" />
</extensions>

所以我的主要工厂类如下所示:

public class MainWindowFactory implements ToolWindowFactory {

@Override
public void createToolWindowContent(@NotNull Project project, @NotNull ToolWindow toolWindow) {
Browser browser = new Browser();
BrowserView view = new BrowserView(browser);
Content content = toolWindow.getContentManager().getFactory().createContent(view, "", false);
toolWindow.getContentManager().addContent(content);

browser.loadHTML("<html><body><h1>Hello World!</h1></body></html>");
}
}

这似乎在我最初在本地运行插件时有效(工具窗口出现,我可以看到 Hello World),但是如果我终止进程然后尝试再次运行它,我会遇到这个错误:

Received signal 10 BUS_ADRERR 000103bc3000
[0x00017cd9540c]
[0x00017cd95301]
[0x7fff572eef5a]
[0x7fbe7e9f5000]
[end of stack trace]

Process finished with exit code 138 (interrupted by signal 10: SIGBUS)

我是否缺少某种清理步骤?我不确定什么仍在运行 - 我目前发现的唯一解决方法是完全重启计算机,所以我猜某些进程一定仍在运行导致它发生冲突。正确的清理方法是什么?它与 browser.dispose() 有什么关系吗?我没有太多运气找到有关 .dispose() 何时合适/是否需要的文档。

我正在使用:
* macOS High Sierra
* Java 1.8.0_151 作为我的 JDK
* PyCharm Ultimate 作为我的 JRE

谢谢!

更新:注意到如果我终止此进程 /System/Library/Frameworks/LocalAuthentication.framework/Support/coreauthd,在接下来的几次运行中问题就会消失。但有时这个进程不存在,杀死一个仍在运行的 java 进程是修复……奇怪。

最佳答案

根据 TeamDev 支持,解决方案是设置系统属性 jxbrowser.ipc.external=true。在创建浏览器实例之前调用 System.setProperty("jxbrowser.ipc.external", "true") 应该可以解决问题。问题是 JxBrowser 将以轻量级模式运行。

您还可以确保通过 browser.dispose() 正确处理所有浏览器实例,并通过 BrowserCore.shutdown() 正确处理 Chromium 引擎。

关于java - 带有 Java Swing(IntelliJ 插件)的 JxBrowser - "Received signal 10 BUS_ADRERR",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47639584/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com