2017-06-28 13 views
0

following my SWT code which use Mozilla browser but it gives me an error xpcomm error 0x80004005.例外:swt.mozillaでのXPCOMエラー0x80004005の

import java.awt.GridLayout; 
import java.io.File; 

import org.eclipse.swt.SWT; 
import org.eclipse.swt.browser.Browser; 
import org.eclipse.swt.layout.FillLayout; 
import org.eclipse.swt.layout.FormAttachment; 
import org.eclipse.swt.layout.FormData; 
import org.eclipse.swt.layout.FormLayout; 
import org.eclipse.swt.widgets.Composite; 
import org.eclipse.swt.widgets.Display; 
import org.eclipse.swt.widgets.Shell; 
import org.eclipse.ui.internal.dnd.SwtUtil; 

public class Newbrowser { 
    public static void main(String a[]) { 
     Display display = new Display(); 
     Shell shell = new Shell(display); 
     /* Composite controls = new Composite(shell, SWT.NONE); */ 
     shell.setText("Browser"); 
     String pathToXulrunner = "C://Program Files (x86)/Mozilla XULRunner/"; 

     System.setProperty("org.eclipse.swt.browser.XULRunnerPath", pathToXulrunner); 

     /* 
     * System.setProperty("org.eclipse.swt.browser.XULRunnerPath", 
     * pathToXulrunner); 
     */ 
     System.setProperty("org.eclipse.swt.browser.MOZ_PROFILE_PATH", new File("").getAbsolutePath()); 
     Browser browser = new Browser(shell, SWT.MOZILLA); 
     shell.setLayout(new FillLayout()); 
     shell.open(); 

     FormData data = new FormData(); 

     data.top = new FormAttachment(0, 0); 
     data.bottom = new FormAttachment(100, 0); 
     data.left = new FormAttachment(0, 0); 
     data.right = new FormAttachment(100, 0); 
     browser.setLayoutData(data); 
     browser.setUrl("www.google.com"); 

     // Set up the event loop. 

     while (!shell.isDisposed()) { 
      if (!display.readAndDispatch()) { 
       // If no more entries in the event queue 
       display.sleep(); 
      } 
     } 
     display.dispose(); 
    } 
} 

は、この問題を解決するために私を助けてください。前もって感謝します。

+0

としてこれを再ホストされてきましたか?あなたはこの記事を見たことがありますか:[Windows 64ビットとSWT 4.3でSWT.MOZILLAブラウザを作成する](https:// stackoverflow。com/questions/21378295/creating-a-swt-mozilla-browser-on-windows-64-bit-and-swt-4-3)?もう少し詳細がなければ、私はこれが重複しているかどうかは分かりません。 – avojak

+0

こんにちは、私はSWT 4.5.2とXulrunner 10.XをWindows 64ビットで使用しています。 –

+0

@avojakこれを手伝ってください –

答えて

0

XULRunner hereの使用上の注意点から、バージョン10.xが正しいと思われます。

XULRunner 10.0.4esrをダウンロードしてコードを実行することができました。私はin this answerのインストール手順に従って、特にbinディレクトリを指していました。

  1. ダウンロードxulrunner-10.0.4esr.en-US.win32.sdk.zipfrom this directory
  2. 内容を抽出し、いくつかの場所にxulrunnerディレクトリを移動(私はc:/xulrunnerを使用しますが、あなたのケースでC:/Program Files (x86)/XULRunnerがあまりにも問題ないはずです。
  3. どちらのVM引数(-Dorg.eclipse.swt.browser.XULRunnerPath)を使用し、または現在使用中のSystem.setProperty()を使用してください。指定するパスが、xulrunnerディレクトリではなく、binディレクトリを指していることを確認してください。

このバージョンのXULRunner(および特にSDK)をお持ちで、指しているファイルパスが存在することを確認してください。あなたがダウンロードを解凍場所に応じて、あなたが交換する必要があります。

String pathToXulrunner = "C://Program Files (x86)/Mozilla XULRunner/"; 

で:

String pathToXulrunner = "C:/Program Files (x86)/Mozilla XULRunner/bin"; 

私もSWT 4.5.2と64ビット版のWindows 10を実行しているので、我々は持っている必要があります同じ設定。


編集:私はちょうど私が32ビットライブラリ(32ビットJavaおよび32ビットSWT)でこれをやっていたが実現。 32ビットライブラリを使用する機会があれば、これはうまくいくはずです。 this answerによれば、64ビットJREでXULRunner 24を使うことができるはずですが、これを得ることができませんでした。


編集2:64ビットライブラリの場合、私はここのXULRunner-1.9.2.25のbinディレクトリの内容が見つかりました:このダウンロードでhttps://osdn.net/projects/sfnet_runawfe/downloads/SRC%20and%20BIN%20files/extras/xulrunner-1.9.2.25-win64.zip/

を、私はあなたのコードを実行することができました。これはbinディレクトリの内容(SDKの代わりにランタイムをダウンロードすることに相当)ですので、pathToXulrunnerのファイルパスからbinを除外できます。

私は今分はできませんが、私はこれを他の場所にホストし、後でその投稿を更新します。


編集3:私はxulrunner-1.9.2.25.en-US.win64.zip使用しているSWTのどのバージョンとはXULRunnerのバージョン

+0

はい、32ビットのライブラリ(32ビットJavaと32ビットSWT )、64ビットライブラリはどうですか?私はまだ64ビットライブラリでこれを得ることができませんでした。 –

+0

@Bhavikpatel私の2番目の編集を見てください - xulrunnerのwin64版のための 'bin'ディレクトリの内容を見つけて、あなたのコードを実行できました。 – avojak

+0

@Bhavikpatelこれはまったく助けになりましたか? – avojak