`

Ubuntu下运行Swt带browser程序出现Unknown Mozilla path (MOZILLA_FIVE_HOME not set)异常

 
阅读更多

昨天把T400换成8G内存,顺势重装了ubuntu 64bit,今天run我的一个swt项目的时候,报错No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]

 

我第一反应是找到mozilla的位置,加入系统变量中,发现问题依旧。

 

网上找了下,官方faq说明:http://www.eclipse.org/swt/faq.php#browserlinuxrcp,具体解决办法没说清楚。

 

然后找到了这个兄弟的博客,执行 sudoapt-get install libwebkitgtk-1.0-0 ,问题解决。

 

顺势贴一下WindowsBuilder的插件地址:https://developers.google.com/java-dev-tools/download-wbpro?hl=zh-CN

 

引用:http://blog.csdn.net/gongli109/article/details/8174755
系统信息:ubuntu 12.04 TSL 32位x86系统

今天第一次用ubuntu的系统启动eclipse内置的游览器报了这样的错误:

eclipse3.5(jee)和eclipse3.7(sdk)版的内置游览器都在Ubuntu12.04 LTS报了这样的错误:

Nomore handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]

org.eclipse.swt.SWTError:No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]

atorg.eclipse.swt.SWT.error(SWT.java:4109)

atorg.eclipse.swt.browser.Mozilla.initMozilla(Mozilla.java:1672)

atorg.eclipse.swt.browser.Mozilla.create(Mozilla.java:637)

atorg.eclipse.swt.browser.Browser.<init>(Browser.java:119)

atorg.eclipse.ui.internal.browser.BrowserViewer.<init>(BrowserViewer.java:225)

atorg.eclipse.ui.internal.browser.WebBrowserView.createPartControl(WebBrowserView.java:48)

atorg.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:375)

atorg.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:229)

atorg.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)

atorg.eclipse.ui.internal.WorkbenchPage$ActivationList.setActive(WorkbenchPage.java:4218)

atorg.eclipse.ui.internal.WorkbenchPage$18.runWithException(WorkbenchPage.java:3277)

atorg.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)

atorg.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)

atorg.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)

atorg.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3527)

atorg.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3174)

atorg.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)

atorg.eclipse.ui.internal.Workbench$31.runWithException(Workbench.java:1566)

atorg.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)

atorg.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)

atorg.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)

atorg.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3527)

atorg.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3174)

解决方法:sudo apt-get install libwebkitgtk-1.0-0

重新启动一下eclipse,eclipse3.7中游览器可用了,但是eclipse3.5的游览器仍然不可用,可能是3.7版本较3.5版本做了改进,减少了对系统的依赖。eclipse3.5仍然报上面的错误,它不是说MOZILLA_FIVE_HOME这个环境变量没有设置么,给他设一个编辑一下/etc/profile

export MOZILLA_FIVE_HOME=/usr/lib/mozilla/ 重新启动eclipse仍然报下面的错误:


Nomore handles [MOZILLA_FIVE_HOME='/usr/lib/mozilla/'](java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:

/home/eclipse/configuration/org.eclipse.osgi/bundles/563/1/.cp/libswt-mozilla-gtk-3650.so:libxpcom.so:无法打开共享对象文件:没有那个文件或目录

noswt-mozilla-gtk in java.library.path

/tmp/swtlib-32/libswt-mozilla-gtk-3650.so:libxpcom.so:无法打开共享对象文件:没有那个文件或目录

Can'tload library: /tmp/swtlib-32/libswt-mozilla-gtk.so

)

org.eclipse.swt.SWTError:No more handles [MOZILLA_FIVE_HOME='/usr/lib/mozilla/'](java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:

/home/eclipse/configuration/org.eclipse.osgi/bundles/563/1/.cp/libswt-mozilla-gtk-3650.so:libxpcom.so:无法打开共享对象文件:没有那个文件或目录

noswt-mozilla-gtk in java.library.path

/tmp/swtlib-32/libswt-mozilla-gtk-3650.so:libxpcom.so:无法打开共享对象文件:没有那个文件或目录

Can'tload library: /tmp/swtlib-32/libswt-mozilla-gtk.so

)

atorg.eclipse.swt.SWT.error(SWT.java:4109)

atorg.eclipse.swt.browser.Mozilla.initMozilla(Mozilla.java:1703)

atorg.eclipse.swt.browser.Mozilla.create(Mozilla.java:637)

atorg.eclipse.swt.browser.Browser.<init>(Browser.java:119)

atorg.eclipse.ui.internal.browser.BrowserViewer.<init>(BrowserViewer.java:225)

atorg.eclipse.ui.internal.browser.WebBrowserView.createPartControl(WebBrowserView.java:48)

atorg.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:375)

atorg.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:229)

atorg.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)

atorg.eclipse.ui.internal.Perspective.showView(Perspective.java:2245)

atorg.eclipse.ui.internal.WorkbenchPage.busyShowView(WorkbenchPage.java:1071)

atorg.eclipse.ui.internal.WorkbenchPage$20.run(WorkbenchPage.java:3822)

atorg.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)

atorg.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:3819)

atorg.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:3795)

atorg.eclipse.ui.handlers.ShowViewHandler.openView(ShowViewHandler.java:162)

atorg.eclipse.ui.handlers.ShowViewHandler.openOther(ShowViewHandler.java:106)

atorg.eclipse.ui.handlers.ShowViewHandler.execute(ShowViewHandler.java:74)

atorg.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)

atorg.eclipse.core.commands.Command.executeWithChecks(Command.java:476)

atorg.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)

atorg.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)

atorg.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)

atorg.eclipse.ui.internal.ShowViewMenu$3.run(ShowViewMenu.java:144)

atorg.eclipse.jface.action.Action.runWithEvent(Action.java:498)

atorg.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)

atorg.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)

atorg.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)

atorg.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)

atorg.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)

atorg.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3552)

atorg.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3171)

atorg.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2629)

atorg.eclipse.ui.internal.Workbench.runUI(Workbench.java:2593)

atorg.eclipse.ui.internal.Workbench.access$4(Workbench.java:2427)

atorg.eclipse.ui.internal.Workbench$7.run(Workbench.java:670)

atorg.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

atorg.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:663)

atorg.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)

atorg.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)

atorg.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)

atorg.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)

atorg.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)

atorg.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)

atorg.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)

atsun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

atjava.lang.reflect.Method.invoke(Method.java:597)

atorg.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)

atorg.eclipse.equinox.launcher.Main.basicRun(Main.java:574)

atorg.eclipse.equinox.launcher.Main.run(Main.java:1407)

Causedby: java.lang.UnsatisfiedLinkError: Could not load SWT library.Reasons:

/home/eclipse/configuration/org.eclipse.osgi/bundles/563/1/.cp/libswt-mozilla-gtk-3650.so:libxpcom.so:无法打开共享对象文件:没有那个文件或目录

noswt-mozilla-gtk in java.library.path

/tmp/swtlib-32/libswt-mozilla-gtk-3650.so:libxpcom.so:无法打开共享对象文件:没有那个文件或目录

Can'tload library: /tmp/swtlib-32/libswt-mozilla-gtk.so


atorg.eclipse.swt.internal.Library.loadLibrary(Library.java:267)

atorg.eclipse.swt.internal.Library.loadLibrary(Library.java:174)

atorg.eclipse.swt.browser.Mozilla.initMozilla(Mozilla.java:1688)

...50 more

分析:从eclipse的官网大概知道:内置游览器要想在linux上跑有这两方面的依赖:Webkit和Xulrunner 检查一下系统的/usr/lib下面确实没有xulrunneryyu于是在https://developer.mozilla.org/en-US/docs/Gecko_SDK下载xulrunner-sdk

得到一个这样的文件:xulrunner-3.6.28.en-US.linux-i686.sdk.tar.bz2解压一下

cd xulrunner-sdk/bin

./xulrunner–register-global //注册一下xulrunner

重新启动一下eclipse,这时它的内置游览器就应该可用了。这时重新删除MOZILLA_FIVE_HOME环境变量,内置游览器仍然可用,说明MOZILLA_FIVE_HOME这个环境变量不是靠手动来设置的,而是系统内部已经设定好的。

 

分享到:
评论

相关推荐

    解决Ubuntu下使用linuxdeployqt打包Qt程序问题

    写了点Qt界面程序,然而发现很难移植到其他没有安装Qt环境的电脑上运行。查资料了解到,在windows上有windowsdeployqt程序,linux上有linuxdeployqt可以帮助我们快速打包。 1. 配置Qt环境 首先,我们先把Qt环境配置...

    Ubuntu下后台持续运行Python程序

    在Ubuntu系统中,后台持续运行Python程序是许多开发者和系统管理员需要掌握的重要技能。这尤其适用于需要长时间运行的任务,如数据分析、服务器监控或自动化任务。本文将深入探讨如何在Ubuntu环境下实现这一目标,并...

    java SWT ubuntu or linux 工具jar包

    标题提到的"java SWT ubuntu or linux 工具jar包"意味着这些jar文件是专门为在Ubuntu或Linux操作系统上运行Java程序而设计的,尤其是那些需要使用GUI的程序。SWT jar包提供了与操作系统原生UI组件的接口,使得Java...

    mozilla-plugin-vlc_0.8.6.release-0ubuntu4.2_amd64.deb

    mozilla-plugin-vlc_0.8.6.release-0ubuntu4.2_amd64.deb

    ubuntu如何运行.sh文件,.sh文件运行提示脚本异常

    ubuntu执行.sh文件,1 .sh文件是Ubuntu下可执行文件,首先需要确定它的权限是否是可执行的,2、 用vim打开sh文件,3、查看文件格式:4. 修改文件格式: 5. 保存退出: 6. 执行:./filename 注意:不可以用sh ...

    ubuntu交叉编译mysql的C语言程序到ARM开发板

    "Ubuntu交叉编译MySQL的C语言程序到ARM开发板" 本文将详细介绍如何在 Ubuntu 系统下交叉编译 MySQL 的 C 语言程序到 ARM 开发板。该过程需要安装必要的开发包、设置交叉编译工具链、修改 CMakeLists.txt 文件、编写...

    chromium-browser_79.0.3945.79-0ubuntu0.19.04.3_amd64.deb

    linux版本的chromium浏览器,一键安装,支持debian,ubuntu,deepin等-------------------------------------------------------

    Ubuntu中更改PATH路径

    如果你经常需要运行位于特定目录下的命令,如在本例中的Monkeyrunner,配置PATH路径可以避免每次手动切换到该命令所在目录。下面是四种更改PATH路径的方法,包括临时和永久性变更: 1. **临时修改PATH值**: 这是...

    Ubantu tomocat启动报错 no opencv_java249 in java.library.path问题解决方案压缩包

    在Ubuntu系统中,Tomcat作为一款广泛使用的Java应用服务器,可能会遇到各种运行时问题。当启动Tomcat时,如果出现“no opencv_java249 in java.library.path”这样的错误,意味着系统无法找到OpenCV(开源计算机视觉...

    ubuntu unknown display的解决办法

    在使用Ubuntu操作系统时,有时可能会遇到“unknown display”的问题,这通常发生在安装或更新图形驱动、启动系统或者尝试更改屏幕分辨率时。这个问题可能是由于多种原因引起的,包括但不限于缺少正确的图形驱动程序...

    Ubuntu 下使用QT开发的串口程序

    本篇文章将详细讲解如何在Ubuntu环境下利用Qt来设计和实现一个串口程序,并介绍如何通过socat工具创建虚拟串口进行测试。 首先,我们需要安装Qt开发环境。在Ubuntu上,可以通过命令行使用apt包管理器来安装: ```...

    Linux_Java_path_设置.

    ### Linux与Windows下的Java Path设置详解 #### 一、引言 在开发环境中正确设置Java环境变量至关重要。本文将详细介绍如何在Linux与Windows系统中设置关键的Java环境变量,包括`JAVA_HOME`、`PATH`以及`CLASSPATH`...

    ubuntu-version `GLIBC-2.25` not found.pdf

    根据提供的文件信息,文档标题“ubuntu-version `GLIBC-2.25` not found.pdf”以及描述“ubuntu_version `GLIBC_2.25` not found”,明确指出在Ubuntu系统上遇到了GLIBC 2.25版本未找到的问题。GLIBC(GNU C Library...

    apt-mirror搭建ubuntu本地仓库源

    set base_path /home/service/ubuntu set mirror_path $base_path/mirror set skel_path $base_path/skel set var_path $base_path/var set cleanscript $var_path/clean.sh # set defaultarch # set postmirror_...

    如何在ubuntu上设置MPI运行环境

    ### 如何在Ubuntu上设置MPI运行环境 #### 并行计算与MPI简介 在现代高性能计算(HPC)领域,并行计算技术变得越来越重要。它能够显著提高计算密集型任务的处理速度,尤其是在多核处理器架构下。消息传递接口(MPI...

    Ubuntu_Linux实用学习教程.rar_Ubuntu!_ubuntu_ubuntu 教程_ubuntu教程

    《Ubuntu Linux实用学习教程》是一本专为初学者设计的指南,旨在帮助用户熟悉和掌握Ubuntu这一开源操作系统的基础操作和应用。Ubuntu是一个基于Debian Linux发行版的桌面环境,以其用户友好性和强大的软件库而闻名。...

    shell脚本 自己编写 ubuntu下测试运行成功

    (1)判断/home下是否存在一个的目录文件;如果不存在则转(2)继续往下执行;如果存在则判断该目录下是否存在一个.c文件,如果不存在则转第(3)步,如果存在则从第(4)步继续执行 (2)在/home下创建一个目录;...

    Ubuntu usr/java/jdk1.8.0_181环境配置

    在Ubuntu系统中进行Java开发时,正确配置Java运行环境是必不可少的步骤。本文将详细介绍如何在Ubuntu系统中配置JDK 1.8.0_181版本的环境,并确保其正常工作。 #### 配置步骤详解 1. **安装JDK** 在Ubuntu上安装...

    ubuntu下配置jiava环境(步骤清晰)

    随后,使用`java Hello`命令运行程序,若控制台显示“Hello world”字样,则证明JDK配置成功,可以在Ubuntu下进行Java编程了。 ### 总结 本文基于《Ubuntu下配置Android开发环境jdk+Eclipse+androidsdk》的文章,...

Global site tag (gtag.js) - Google Analytics