问题
I use the SWT Browser control in my Eclipse RCP application. On Linux Ubuntu 10.10 this depends on the user having installed xulrunner-1.9.2. This works fine.
However, on Ubuntu 11.04 I find that it ships by default with xulrunner-2.0. The SWT Browser does not support this. See http://bugs.eclipse.org/bugs/show_bug.cgi?id=327696 and http://bugs.eclipse.org/bugs/process_bug.cgi
So rather than ask the user to install xulrunner-1.9.2 I want to get the SWT Browser to run with WebKitGTK as per the instructions on the SWT FAQ - http://www.eclipse.org/swt/faq.php#browserwebkitgtk
I cannot get this to work at all. How do I fulfil "WebKitGTK 1.2.0 or newer must be in the library load path"?
Any help much appreciated
回答1:
I'm not on Ubuntu, but think that doesn't matter much.
- Check the version of
libwebkit-1.0-2
(it should be >= 1.2.0) - Install this package if absent
- Check that
/usr/lib
and/usr/lib/jni
is injava.library.path
- If you use SWT 3.6, also check that appropriate webkit jni wrapper is installed (e.g.
libswt-webkit-gtk-3.6-jni
andorg.eclipse.swt.browser.UseWebKitGTK
system property is set to `True
Edit: To localize source of the problem create minimalistic project and show the output
package foo;
import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTError;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class BrowserTest {
public static void main(String[] args) {
System.out.println(System.getProperty("java.library.path"));
System.out.println(System.getProperty("org.eclipse.swt.browser.UseWebKitGTK"));
Display display = new Display();
Shell shell = new Shell(display);
try {
Browser browser = new Browser(shell, SWT.NONE);
browser.setSize(shell.getSize());
browser.setUrl("google.com");
} catch (SWTError e) {
e.printStackTrace();
}
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
回答2:
For Eclipse Juno SR1 (4.2 SR1) running on Ubuntu 12.04, the following worked for me:
- Install the libwebkit package:
sudo apt-get install libwebkitgtk-3.0-0
- Install the libwebkit jni wrapper:
sudo apt-get install libswt-webkit-gtk-3-jni
Set the DefaultType and UseWebKitGTK properties (I did it by adding the following to my eclipse.ini file):
-Dorg.eclipse.swt.browser.DefaultType=webkit -Dorg.eclipse.swt.browser.UseWebKitGTK=true
回答3:
Simply installing the "hotot" (Twitter) App via Software Center, which drags WebKit along, did the trick for me. - A "sudo apt-get install -y libwebkitgtk-1.0-0", or build from source as per https://help.ubuntu.com/community/WebKit, would probably work as well.
回答4:
For Natty, check out this page: http://www.maplef.net/blog/archives/ubuntu-upgrade-eclipse3-5-to-3-6.html (ignore japanses/chinese stuff, just follow the code to reach shangri-la)
来源:https://stackoverflow.com/questions/5817263/how-to-get-eclipse-swt-browser-component-running-on-ubuntu-11-04-natty-narwhal