RCP с SWT.Browser и XULRunner - PullRequest
       33

RCP с SWT.Browser и XULRunner

8 голосов
/ 25 октября 2011

Я разрабатываю приложение RCP (Windows) с SWT.Browser ( SWT.MOZILLA ):

Browser browser = new Browser(parent, SWT.MOZILLA);

Работает нормально со старым XULRunner 3.6.23 и описанной установкой здесь :

xulrunner.exe --register-global

Я хочу использовать новый XULRunner 8.x, но, как уже упоминалось, здесь старый способ установки XULRunner был удален.

Итак, я добавил XULRunner-Path программно:

System.setProperty("org.eclipse.swt.browser.XULRunnerPath", "Path\\To\\xulrunner_8.x"); 

Но когда я запускаю свое приложение, я получаю следующую ошибку

org.eclipse.swt.SWTError: XPCOM error -2147467261

Так каков предпочтительный способ встраивания XULRunner 8.x в приложение RCP и избежание этой ошибки?

Ответы [ 4 ]

8 голосов
/ 30 апреля 2012

Начиная с Eclipse 3.8 / 4.2 M6 org.eclipse.swt.browser теперь поддерживает встраивание XULRunner 10.0.x, но вы должны отправить XULRunner 10 runtime и явно указать на него, как описано в FAQ :

...    
    System.setProperty("org.eclipse.swt.browser.XULRunnerPath", "path\to\xulrunner_10"); 
...

Среду выполнения XULRunner 10 можно загрузить с ftp.mozilla.org / pub / mozilla.org / xulrunner / Releases / 10.0 / runtimes /

JavaXPCOM

Mozilla больше не поддерживает JavaXPCOM, но, как говорит Грант Гайед, :

Для работы браузера не требуется JavaXPCOM,он просто предоставляет его приложениям, которые хотят использовать его самостоятельно, с помощью метода getWebBrowser ().

Linux

XULRunner 10 в настоящее время не будет работать под Linux из-за ошибки Mozilla720682 .

2 голосов
/ 21 мая 2013

Для Windows вы также можете использовать Internet-Explorer в качестве браузера, пока eclipse не будет правильно поддерживать xulrunner (будет в версии 4.3.x).

Для IE:

просто укажите

    -Dorg.eclipse.swt.browser.DefaultType=ie,mozilla

на eclipse.ini.

Подробнее об этом можно прочитать здесь .

0 голосов
/ 05 июня 2015

Eclipse_4.4.2 теперь поддерживает XULRunner24.0, вы можете попробовать эту версию.

0 голосов
/ 11 февраля 2015

Я работаю в Windows7 (64-разрядная версия) и у меня новая версия xulrunner: 31.0.0 ([http://wiki.mozilla -x86-64.com / Загрузить] [1] )

Но когда я пытаюсь указать путь, это дает мне ошибку System.setProperty ("org.eclipse.swt.browser.XULRunnerPath", "path \ to \ xulrunner_31 \");

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at chrriis.dj.nativeswing.swtimpl.core.MessagingInterface.processCommandResult(MessagingInterface.java:342)
    at chrriis.dj.nativeswing.swtimpl.core.MessagingInterface.syncSend(MessagingInterface.java:329)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface.syncSend_(SWTNativeInterface.java:392)
    at chrriis.dj.nativeswing.swtimpl.NativeInterface.syncSend(NativeInterface.java:104)
    at chrriis.dj.nativeswing.swtimpl.Message.syncSend(Message.java:64)
    at chrriis.dj.nativeswing.swtimpl.CommandMessage.syncExec(CommandMessage.java:55)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeComponent.runSync(SWTNativeComponent.java:201)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeComponent.createNativePeer(SWTNativeComponent.java:1009)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeComponent.access$17(SWTNativeComponent.java:989)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeComponent$12.run(SWTNativeComponent.java:882)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:738)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:699)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:708)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeComponent$CMN_createControl.run(SWTNativeComponent.java:663)
    at chrriis.dj.nativeswing.swtimpl.CommandMessage.runCommand(CommandMessage.java:61)
    at chrriis.dj.nativeswing.swtimpl.NativeInterface.runMessageCommand(NativeInterface.java:172)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface.runMessageCommand(SWTNativeInterface.java:1429)
    at chrriis.dj.nativeswing.swtimpl.core.MessagingInterface.runMessage(MessagingInterface.java:121)
    at chrriis.dj.nativeswing.swtimpl.core.MessagingInterface.processReceivedMessages(MessagingInterface.java:106)
    at chrriis.dj.nativeswing.swtimpl.core.MessagingInterface.access$2(MessagingInterface.java:94)
    at chrriis.dj.nativeswing.swtimpl.core.MessagingInterface$2$2.run(MessagingInterface.java:442)
    at org.eclipse.swt.widgets.RunnableLock.run(Unknown Source)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Unknown Source)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Unknown Source)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface$OutProcess.runNativeSide(SWTNativeInterface.java:1352)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface.main_(SWTNativeInterface.java:1461)
    at chrriis.dj.nativeswing.swtimpl.NativeInterface.main(NativeInterface.java:224)
Caused by: org.eclipse.swt.SWTError: XPCOM error 0x80004005
    at org.eclipse.swt.browser.Mozilla.error(Unknown Source)
    at org.eclipse.swt.browser.Mozilla.initXULRunner(Unknown Source)
    at org.eclipse.swt.browser.Mozilla.create(Unknown Source)
    at org.eclipse.swt.browser.Browser.<init>(Unknown Source)
    at chrriis.dj.nativeswing.swtimpl.components.core.NativeWebBrowser.createControl(NativeWebBrowser.java:431)
    ... 19 more

Без этого он показывает IE 9.0 или другой xulunner, который я не могу подтвердить, откуда это работает, но показывает версию 5.0 Firefox. Любая идея, как я могу обновить с последней версией Firefox.

...