2009-06-02 3 views
1

実行可能な「java_swt」がどこにあるか教えていただけますか?Java_swt in eclipse

私はそれがeclipseに組み込まれていると言っているサイトを見ていますが、他のサイトではMac swt dropsが同梱されていると言われています。私は "swt-3.5M6- carbon-macosx.zip"と呼ばれるMac用のzipファイルを持っています。私はEclipse MacマシンとWindowsマシンにEclipse IDEをインストールしています。しかし、私はこの実行可能なMac OS X上でスムーズにswtアプリケーションを実行する必要があります見つけることができません。

ご協力いただければ幸いです。ありがとう。

+0

実行ファイルを探していますか?私はそれが.jarファイルであると期待しています。 –

+0

私は何を探しているのか正確にはわかりません。私はアプリケーションバンドルを作成しており、私がオンラインで見つけた最高の記事(borderland consulting)は、これをinfo.plistファイルで実行可能とすると述べています。 これは、Mac OS X(JavaApplicationStub)上の標準Javaアプリケーションランチャーの代わりですが、SWTがCarbonコンポーネントを正しく使用する必要があります。 SWTネイティブライブラリのCarbonディストリビューションからjava_swtファイルを取得し、そのファイルをアプリケーションバンドル内の正しい場所に移動するだけです。 –

+0

私にはzipファイル内にあるように聞こえます。他のサイトでは "このランチャーはEclipseアプリケーションに組み込まれていますが、Macintosh SWTドロップにも含まれています。 –

答えて

0

私はこの 'java_swt'が何であるかわかりませんが、Eclipseは現在このようなことをしているとは思いません。 SWT FAQが役に立ちます。

通常のjava + swtを実行している場合は、引き続きEclipse実行可能ファイルを使用できます。 Main-Classヘッダーを指定したjarファイルが必要です。 は同様に、通常の静的なmainメソッドに加えて、あなたは非静的runメソッドが必要になります(これは、実行ファイルが実際に呼び出すものです):

int run(String [] args); 

あなたは、通常のEclipseのレイアウトを持っていないので、 eclipseランチャー共有ライブラリが必要です(通常はplugins/org.eclipse.equinox.launcherにあります。<ws>。<os>。<アーチ> /eclipse_1206.so)。

また、あなたのjarにスプラッシュ画面を扱うための春分のクラスが含まれていないので、明示的にオフにする必要があります。何かのように

コマンドラインは次のようになります。あなたが実行可能な横にたeclipse.iniにそれらのコマンドライン引数を置くことができます

eclipse -nosplash --launcher.library eclipse_1206.so -startup my_program.jar 

、それぞれの引数は別個の行になります。実行可能ファイルの名前を変更する場合は、.iniの名前を一致する名前に変更します。

+0

明らかに、 "java_swt"ランチャーは、swtとmac os xの間のスレッドの問題のために作成されました。このランチャーはスレッドを同期させます。私はそれをgoogleし、多くの例は、この言葉を使用して、マックswtのドロップに含まれています。 eclipse swtのバグリストにあります。 –

+0

ああ、それは時代遅れです、私はhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=135854#c2を見つけました。また、http://www.eclipse.org/swt/macosx/。 eclipseランチャー(3.3以降)は、JNI呼び出しAPIを使用してMac上でJavaを起動することにも注意してください。最初のスレッドでこれを実行するので、-XstartOnFirstThreadは基本的にEclipseランチャーの使用に暗黙のうちに入ります。 EclipseのランチャーをAWTで使用したい場合は、実際に逆の引数--launcher.secondThreadがあります。 –

1

このjava_swtを探す代わりに、私は自分のbashを実行可能に変更し、アプリケーションバンドルを起動してJarファイルを直接参照します。 swt jarは私のアプリケーションjarとバンドルされていますが、dllフォルダの下にあるjniライブラリもあります。フォルダ構造は次のとおりです。

 
|Contents 
    Info.plist 
    PkgInfo 
    |MacOS 
     bashExec 
    |Resources 
     myApp.icns 
     |Java 
      |dll 
       libswt-carbon-xxxx.jnilib 
       libswt-pi-carbon-xxxx.jnilib 
      myApp.jar 
      swt.jar 

bashシェルはかなり基本的であり、「-XstartOnFirstThread」コールとSWTとMacの間でスレッドの問題を解決します。ここにbashシェルがあります(最初の行に '!'の前にポンド記号が表示されません)。

#!/bin/sh 

BASEDIR='dirname "$0"' 

exec java \ 
-XstartOnFirstThread \ 
-Dorg.eclipse.swt.internal.carbon.smallFonts \ 
-Dorg.eclipse.swt.internal.carbon.noFocusRing \ 
-jar "$BASEDIR/../Resources/Java/myApp.jar" 
0

SWTはツールキットとして存在します。 EclipseのRCP版を入手することをお勧めします。あなたの人生を少し楽にしてくれるかもしれません。