eclipse:No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]

本文介绍了解决Eclipse启动时因Markdown插件导致的崩溃问题,分析了错误原因,提供了两种解决方案:安装缺失的libwebkitgtk-1.0-0库或删除相关配置文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

$uname -a
Linux ***-workspace 4.10.0-32-generic #36~16.04.1-Ubuntu SMP Wed Aug 9 09:19:02 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

eclipse错误描述:在启动eclipse的时候,选定工作目录后,eclipse闪退,并叫我看工作目录下的.metadata/.log日志查看问题

复制代码

!ENTRY org.eclipse.osgi 4 0 2017-09-01 08:20:00.988
!MESSAGE Application error
!STACK 1
org.eclipse.swt.SWTError: No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]
at org.eclipse.swt.SWT.error(SWT.java:4387)
at org.eclipse.swt.browser.Mozilla.initMozilla(Mozilla.java:1936)
at org.eclipse.swt.browser.Mozilla.create(Mozilla.java:699)
at org.eclipse.swt.browser.Browser.<init>(Browser.java:99)
at winterwell.markdown.views.MarkdownPreview.createPartControl(MarkdownPreview.java:41)
at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:386)
at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:240)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:315)
at org.eclipse.ui.internal.ViewPane.setVisible(ViewPane.java:534)
at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180)
at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270)
at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473)
at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1245)
at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:662)
at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:570)
at org.eclipse.ui.internal.PartSashContainer.createControl(PartSashContainer.java:568)
at org.eclipse.ui.internal.PerspectiveHelper.activate(PerspectiveHelper.java:272)
at org.eclipse.ui.internal.Perspective.onActivate(Perspective.java:981)
at org.eclipse.ui.internal.WorkbenchPage.onActivate(WorkbenchPage.java:2718)
at org.eclipse.ui.internal.WorkbenchWindow$28.run(WorkbenchWindow.java:3030)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchWindow.setActivePage(WorkbenchWindow.java:3011)
at org.eclipse.ui.internal.WorkbenchWindow$21.runWithException(WorkbenchWindow.java:2297)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3537)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3189)
at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)
at org.eclipse.ui.internal.Workbench$33.runWithException(Workbench.java:1600)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3537)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3189)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2609)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
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 org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
at org.eclipse.equinox.launcher.Main.main(Main.java:1414)

!ENTRY org.eclipse.core.jobs 2 2 2017-09-01 08:20:01.474
!MESSAGE Job found still running after platform shutdown. Jobs should be canceled by the plugin that scheduled them during shutdown: org.eclipse.ui.internal.ide.IDEWorkbenchActivityHelper$4

复制代码

错误分析:

通过查找方案,分析是有以下问题引起的。由于我Ubuntu系统被误操作破坏了后,重新安装了,讲原来的home目录直接挂在到新的系统下面使用,也就是说eclipse是新装的,而工作目录是以前的,而工作目录中记录了以前装的markdown插件时安装的libwebkitgtk-1.0-0相关信息,在新的eclipse下没有,所以启动崩溃。

解决方案:

1. 用以下命令安装需要的插件即可。

$ sudo apt-get install libwebkitgtk-1.0-0

2.或者删掉工作目录下的以前的记录目录。

$rm -rf workspace/.metadata
### 回答1: 这个错误信息是由于 SWT 库在初始化时调用了 GTK 库的函数,但是 GTK 库没有成功初始化导致的。可能是因为系统缺少了必要的 GTK 库文件或者环境变量设置不正确。需要检查系统环境和安装的软件包,确保 GTK 库正确安装并且环境变量设置正确。 ### 回答2: org.eclipse.swt.swterror: no more handles [gtk_init_check() failed] 这个错误是在Eclipse中使用SWT(Standard Widget Toolkit)时出现的常见错误之一。SWT是Eclipse的一个图形用户界面库,它提供了一套本地化、高性能的窗口小部件,使得Eclipse能够在各种不同的操作系统和桌面环境中工作。这个错误提示表明,SWT无法初始化GTK+窗口系统,导致无法创建窗口或者其他控制对象,因此Eclipse进程崩溃。 这个错误可能有多种原因,常见的包括: 1. SWT库在启动时无法加载GTK+库文件。这可能是由于GTK+没有正确安装或者路径设置有误导致的。 2. 前一个Eclipse进程没有完全关闭导致的。在启动Eclipse之前,请确保所有Eclipse和Java进程都已关闭,或者可以尝试使用任务管理器杀死所有相关进程。 3. 操作系统驱动程序或硬件错误导致的窗口系统崩溃。这种情况下,可能需要重新安装操作系统或更新显卡驱动程序。 为了解决这个问题,以下是一些可能的解决方法: 1. 确保GTK+正确安装并已正确设置环境变量。 2. 关闭所有Eclipse和Java进程,然后重新启动Eclipse。 3. 更新操作系统和显卡驱动程序,可能需要重新安装操作系统。 4. 在Eclipse启动选项中添加 -clean 标志,清除所有Eclipse缓存和设置。 5. 禁用Eclipse中使用GTK+窗口系统的选项,或者尝试使用其他窗口系统,比如SWT的默认窗口系统。 总之,org.eclipse.swt.swterror: no more handles [gtk_init_check() failed]是一个非常常见的Eclipse错误,通常与SWT和GTK+库相关。 通过操作系统和Eclipse的设置以及一些常见的解决方案,可以很容易地解决这个问题。 ### 回答3: org.eclipse.swt.swterror: no more handles [gtk_init_check() failed] 这个错误通常发生在Eclipse运行时环境中,在Linux操作系统上安装Eclipse时,因为缺少GTK库或者GTK库不匹配而出现的错误。 Eclipse使用的界面框架是SWT(Standard Widget Toolkit),该框架不同于Java原生GUI框架(如AWT和Swing),它通过本地操作系统来渲染用户界面。因此,需要在本地操作系统上安装特定版本的SWT以确保Eclipse正常运行。 而当出现 "no more handles [gtk_init_check() failed]" 的错误时,意味着 SWT 在渲染图形时无法获取足够的操作句柄(handles),主要原因是缺少或不正确安装GTK+库。 解决方法如下: 1. 检查是否安装了GTK+库或者gtk2-engines-pixbuf包,安装最新版本的GTK+库,或检查其与Eclipse版本的兼容性。 2. 检查本地运行Eclipse的用户账户是否有读取GTK+库的权限,可以使用 "ls-l" 命令检查权限和所有权。 3. 手动指定SWT库路径,具体步骤为在Eclipse.ini中添加"-Dorg.eclipse.swt.internal.gtk.cairoGraphics=false"以禁用cairo图像渲染,并在" -Dorg.eclipse.swt.library.path "参数中指定所需的SWT库路径。 4. 禁用桌面特效,有时开启桌面特效也可能是造成如此错误的原因。在桌面系统设置中禁用桌面特效,重新启动Eclipse。 总之,这个错误是由SWT框架无法获取足够的操作句柄导致,可以通过检查和安装最新版本的GTK+库、检查用户权限、手动指定SWT库路径或禁用桌面特效等方法来解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值