0

GUI に SWT を使用して、Eclipse で Java を使用して小さなアプリケーションを作成しました。SWT Designer をインストールしてプロジェクトをセットアップしました。これは、SWT のみの Swing Designer と非常によく似ています。File >> New >> Other >> Window Builder >> SWT Designer >> SWT/JFace Java Project でプロジェクトを作成しました。これでプロジェクト全体がセットアップされたので、SWT を使い始めることができました。Eclipse を使用してプログラムを実行すると、プログラムが正常に実行されます。

ただし、Eclipseなしで実行できるようにしたいです。ファイル >> エクスポート >> Java >> JAR ファイルに移動して、.jar としてエクスポートしようとしました。プロジェクトを選択し、[Next >> Next] をクリックしてから、メイン クラスを設定して [Finish] をクリックします。エラーなし。

.jar を開くと、次のようになりました。

スレッド「メイン」の例外 java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Layout

SWT があるべき場所にないことは明らかだったので、.jar を開いて、自分のファイル、META-INF などしか見つかりませんでした。SWT は何も見つかりませんでした。jar も org フォルダーもありません。

私のEclipseプロジェクトでは、Project Explorerの下に、SWTがセットアップされている「参照ライブラリ」がリストされています。そのプロパティの下を見ると、たくさんの org.eclipse... がリストされています。これがEclipseが何を実行するかを知る方法だと思いますが、エクスポートしていないようです。

私の質問は、.jar だけで実行できるようにするために、SWT をパッケージ化してプロジェクトをエクスポートするにはどうすればよいですか? 手動の方法 (つまり、META-INF の編集と必要な SWT ファイルのドラッグ アンド ドロップ) と、Eclipse のエクスポートの方法 (常に手動で行う必要がないため) の両方を説明していただければ幸いです。 )、Eclipseでそれを行う方法がある場合。

編集:以下の私の答えが表示されている場合、これを機能させる方法を説明しましたが、元の1MB未満のプロジェクトではかなり大きい16MB相当のコードを.jarにダンプします。使用済みファイルのみを追加する方法について何か考えがある場合は、回答をいただければ幸いです。;)

4

2 に答える 2

0

私がこれを成功させる方法は、それを実行可能なJARとしてエクスポートすることでした。

それを機能させるための私の手順:

メインクラスを実行します。(具体的には、クラスのデフォルトの実行である CTRL+F11 を使用して、実行方法を Eclipse に推測させます。)

ファイル >> エクスポート >> 実行可能な JAR に移動します

私の起動構成を選択します。(Juno のトップバーの実行ボタンの横にある矢印を押すと一覧表示されます。)

終了キーを押して待って!

于 2012-11-21T03:03:02.810 に答える
0

OSGI を使用しているようには聞こえませんが、Eclipse プラグイン ディレクトリに移動し、swt jar を取得してプラグインにコピーし、マニフェスト エディターの [ランタイム] タブに移動して jar を選択することにより、クラスパスに追加することをお勧めします。osgi アプリを実行している場合は、.product エディターの依存関係タブに移動し、必要なプラグインの追加を選択して、.product ファイルに正しい依存関係があることを確認してください。これを別のコンテキストで実行している場合は、コメントしてください。回答します。

于 2012-11-21T02:24:31.683 に答える