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にダンプします。使用済みファイルのみを追加する方法について何か考えがある場合は、回答をいただければ幸いです。;)