2012-03-14 20 views
8

Sul mio Arch Linux, Eclipse con Google Finestra Builder/applicazioni SWT, io sono sempreSWT Browser & Eclipse

Exception in thread "main" org.eclipse.swt.SWTError: No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)] 
    at org.eclipse.swt.SWT.error(SWT.java:4308) 
    at org.eclipse.swt.browser.Mozilla.initMozilla(Mozilla.java:1826) 
    at org.eclipse.swt.browser.Mozilla.create(Mozilla.java:687) 
    at org.eclipse.swt.browser.Browser.<init>(Browser.java:99) 
    at octopus.EventSummaryComposite.<init>(EventSummaryComposite.java:33) 
    at octopus.EventEditingComposite.<init>(EventEditingComposite.java:45) 
    at octopus.EventManagementController.<init>(EventManagementController.java:31) 
    at octopus.MainController.<init>(MainController.java:38) 
    at octopus.MainController.main(MainController.java:85) 

Credo devo installare XULrunner o qualcosa del genere. Ma quando installo xulrunner in Arch, ottengo xulrunner and eclipse are in conflict. Così ho provato a installare pywebkitgtk. Quindi ho aggiunto -Dorg.eclipse.swt.browser.DefaultType=webkit a /usr/bin/eclipse e /usr/share/eclipse/eclipse.ini non so quale sia utilizzato. Ma quando corro, ho ancora lo stesso errore. Sembra che il webkit non sia ancora usato. Come posso risolvere questo?

UPDATE 2

Finora ho provato a installare libwebkit3. Quindi aggiunto -Dorg.eclipse.swt.browser.UseWebKitGTK=true a /usr/share/eclipse/eclipse.ini, si ottiene lo stesso errore.

Poi ho anche provato il download e l'estrazione xulrunner from mozilla-~/xulrunner e l'aggiunta di -Dorg.eclipse.swt.browser.XULRunnerPath=/home/jiewmeng/xulrunner/ a config, ancora lo stesso errore ...

In Ubuntu in questo momento, ho appena installato xulrunner e ha funzionato ... Mi chiedo se il config è anche usato?

Arch Linux Question

UPDATE (Ambiente & versioni)

  • Arch Linux
  • GNOME 3
  • Eclipse 3.7.2
  • SWT 1.3.0/3.7.2 (http://dl.google.com/eclipse/inst/d2wbpro/latest/3.7)
  • XULRunner 1.9.2.19 (http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.2.19/)
  • Firefox 11 (da pacman)

Let me sapere se avete bisogno di altre informazioni relavent

UPDATE (Old)

Se cambio il mio codice di

new Browser(this, SWT.WEBKIT) 

ottengo

Exception in thread "main" org.eclipse.swt.SWTError: No more handles 
    at org.eclipse.swt.SWT.error(SWT.java:4308) 
    at org.eclipse.swt.SWT.error(SWT.java:4197) 
    at org.eclipse.swt.SWT.error(SWT.java:4168) 
    at org.eclipse.swt.browser.Browser.<init>(Browser.java:103) 
    at octopus.EventSummaryComposite.<init>(EventSummaryComposite.java:33) 
    at octopus.EventEditingComposite.<init>(EventEditingComposite.java:45) 
    at octopus.EventManagementController.<init>(EventManagementController.java:31) 
    at octopus.MainController.<init>(MainController.java:38) 
    at octopus.MainController.main(MainController.java:85) 
+0

È probabilmente avete già visto questo thread, ma non siete soli su questo problema in Arch Linux: http : //stackoverflow.com/questions/7130980/swt-browser-no-more-handles-error – MrGomez

+0

E, per pura curiosità ingenua da parte mia, quali versioni di Eclipse e Mozilla Firefox sono state installate? Notare l'elenco supportato di versioni di WebKit e Mozilla per versione di Eclipse, oltre all'opinione sulle librerie Gecko collegabili. Compilare da solo Firefox potrebbe effettivamente risolvere il tuo problema: http://www.eclipse.org/swt/faq.php#browserlinux – MrGomez

+0

@MrGomez, ho appena visto questo commento, sto usando Firefox 11, hmm mi compilo ... dove Ottengo le fonti? Ha detto che quello di Mozilla non soddisfa i criteri? –

risposta

7

Il problema apparente, in conformità con la domanda modificato e tutti gli errata, sembra essere un conflitto di versione tra la versione in esecuzione di Eclipse e la versioni di Mozilla o WebKit installate sul tuo sistema. Questo è ulteriormente confuso da extremely terse documentation e dependency hell.

La chiave è quello di controllare la versione in esecuzione Eclipse e confrontarlo con le versioni di xulrunner e libwebkit installato sul vostro sistema, esattamente come raccomandato nella risposta ed errata here e documentato nella FAQ here.Tuttavia, in base alle difficoltà riscontrate e alla documentazione sparsa su questo problema, è necessario prendere precauzioni speciali per garantire che tutte le dipendenze siano soddisfatte per le versioni strettamente corrette.

Dato la diagnosi che xulrunner and eclipse are in conflict, ho fatto un po 'scavare per trovare la risoluzione corretta a questo problema. Si scopre che questo è trattato in modo dettagliato in this thread. L'informazione saliente che dovete essere preoccupati:

  • Eclipse 3.5.2-3.6.x sono incompatibili con XULRunner 2.0. Se si tratta di un sistema precedente, utilizzare xulrunner 1.9.2-15-2 per risolvere il problema.

  • La versione di Eclipse che si sta utilizzando molto probabilmente non supporta libwebkit3. Come accennato, è estremamente probabile che sarà necessario utilizzare una versione precedente.

  • In tutti i casi, la costruzione di una versione di Firefox con il corretto attacchi Gecko dovrebbe risolvere il problema e, come punto di fatto, riproduce questo errore quando tali attacchi non sono presenti:

anche si noti che una versione di Firefox la cui versione Gecko è correlata con le versioni di Mozilla sopra può anche essere utilizzata con Eclipse 3.1 e successive (solo Linux), a condizione che sia stato compilato con librerie Gecko collegabili. E 'importante notare che Firefox download da mozilla.org non soddisfano questo criterio, ma Firefox installazioni che sono inclusi nelle principali distribuzioni Linux spesso fanno in assenza di un impianto XULRunner. Il tentativo di utilizzare un'installazione di Firefox senza librerie Gecko collegabili genererà un errore con il messaggio "Nessun altro handle [NS_InitEmbedding ... errore -2147221164]".

In breve: il problema è con la confezione di Arch Linux delle dipendenze per Eclipse SWT. Ma, questo è un problema anno-vecchio che indica la versione di Eclipse e il resto del sistema è un disperato bisogno di un aggiornamento del software ... :)


Edit: Per ottenere Google WindowBuilder Pro 's copia dei widget del browser SWT che lavorano in Arch Linux, ho creato una VM e ho fatto un passo in questo processo con l'OP. Sono stato in grado di riprodurre il bug in entrambe le versioni a 32 e 64 bit di Arch Linux.

Si scopre che i binding di Arch Linux per libwebkit non erano sufficienti, quindi sono andato avanti e ho creato xulrunner-1.9.2.19from source. Dopo un di necessaryfixups, la mia versione make install funziona solo con Eclipse.

Il prossimo passo, per chiunque sia disposto, è quello di segnalare questo ad Arch Linux.

+0

È un problema se sto usando GNOME 3 (la sua GTK3 penso, ma è installato anche GTK2)? Inoltre ho messo '-Dorg.eclipse.swt.browser.XULRunneaarPath =/home/jiewmeng/xulrunner' (XULRunner 1.9.2) in eclipse.ini ma non riesce ancora. Ho erroneamente digitato l'opzione, eclipse è ancora in esecuzione, la configurazione è in corso? –

+0

GNOME 3 non è noto per causare problemi in base alla documentazione. Anche per la mia comprensione, la configurazione cambia avete fatto a 'eclipse.ini' vengono analizzati direttamente dalla JVM utilizzato per eseguire Eclipse, e in tale veste, le opzioni errate vengono scartati. Infatti, l'invocazione dovrà essere '-Dorg.eclipse.swt.browser.XULRunnerPath' per funzionare in modo efficace. Se si desidera controllare se l'ini viene ignorato, si consideri questo passaggio direttamente a '' eclipse' come -vmargs', come in questo caso: http://help.eclipse.org/indigo/index.jsp?topic=%2Forg. eclipse.platform.doc.isv% 2Freference% 2Fmisc% 2Fruntime-options.html – MrGomez

+0

ho provato './eclipse -vmargs -Dorg.eclipse.swt.browser.XULRunnerPath =/home/jiewmeng/xulrunner', ed ho ottenuto lo stesso errore. La directory appare come http://i.imgur.com/h2HxL.png. Aggiornerò il mio post originale su ambiente dettagliato e versioni. –

0

Vedere Browser di QA in SWT FAQ

+0

Suppongo che finirò http://www.eclipse.org/swt/faq.php#browserwebkitgtk. "WebKitGTK 1.2.0 o più recente deve essere nel percorso di caricamento della libreria" come farò? Come faccio a sapere dove si trova webkitgtk? –

+0

Su Ubuntu puoi trovare un pacchetto tramite 'dpkg -l | grep '. Quindi 'apt-file mostra libwebkitgtk-1.0-0' per trovare il percorso delle librerie. Non uso mai arch linux prima, non sono sicuro di come trovare un pacchetto da esso. – Kane

+0

Di quali file ho bisogno? Che cosa è installato da pywebkitgtk è http://pastie.org/3591807. –

1

MOZILLA_FIVE_HOME non impostato per il plug-in di eclissi o qualsiasi collegamento che fornisce errore non gestito, si prega di fare il processo follwoing e il gioco è fatto.

Si può ottenere un "MOZILLA_FIVE_HOME non set" dopo l'installazione Plug-in Eclipse colore del tema in Ubuntu 12.04. Ecco un workround.

  1. Scaricare e installare libhunspell-1.2-0 da qui e installarlo.

    sudo dpkg -i libhunspell-1.2-0_1.2.14-4_amd64.deb 
    
  2. Scaricare e installare xulrunner-1.9.2 da qui e installarlo.

    sudo dpkg -i xulrunner-1.9.2_1.9.2.28 + Build1 + nobinonly-0ubuntu0.11.04.1_amd64.deb

3

questa procedura ha lavorato per me con STS 2.9.2 basati su Eclipse 3.7 .2 (Ubuntu 12.04 - 64bits):

  1. Installare il plug-in di Google per Eclipse utilizzando questo sito di aggiornamento: http://dl.google.com/eclipse/plugin/3.7. Volevo solo utilizzare GWT, quindi ho controllato solo "Google plug-in per Eclipse", "GWT Designer per GPE" e "SDK".
  2. Riavvia Eclipse e verifica che il tentativo di progettare una vista GIBT UIBinder con WindowBuilder non visualizzi un errore relativo a xulrunner.
  3. Chiudi Eclipse.
  4. installare i pacchetti richiesti (ispirati da http://elgali.net/2012/05/14/gwt-designer-eclipse-plugin-in-ubuntu-12-04/)
    • sudo apt-get install libicu48
    • sudo apt-get install libwebkitgtk-1.0-comune
    • sudo apt-get install libwebkitgtk-1,0-0
  5. Avvia di nuovo Eclipse e controlla che la vista di WindowBuilder Desing funzioni!
0

In Arch Linux, in base alla risposta del @mrgomez e installazione FAQs fornito:

# pacman -S webkitgtk2 

risolto il problema!

Grazie!