
Eclipseで、何も無いウインドウを開くというだけのアプリケーションを作ろうとしました。
ライブラリに、
org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar
を追加しております。
配布できる形式にしたいため、Jarファイルを作成しました。
プロジェクトにMETA-INFというフォルダを作成し、そこに「Manifest.mf」というファイルを作成し、以下のように記述しました。
Manifest-Version: 1.0
Class-Path: "C:\eclipse\plugins\org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar"
Main-Class: view.TestWindow
ちなみに、「view.TestWindow」というのがmainメソッドのあるクラスの名前です。
JARファイルをエクスポートして、コマンドライン上から以下のように入力しました。
> java -jar TestWindow.jar
結果は、以下のようなエラーが表示されました。
Failed to load Main-Class manifest attribute from
TestWindow.jar
多分、「Main-Class」の情報がマニフェストファイルから見つからないと言っているんだと思いますが、Eclipse上からエクスポートする際にはちゃんと場所を指定しています。何が問題なのか解りません。
将来的には、違うマシン上で動作するアプリケーションを作りたいと思っているのですが、最初でいきなり躓いてしまいました。
どなたか教えて頂けないでしょうか。
No.3ベストアンサー
- 回答日時:
swtのライブラリを使用するためのマニフェストファイルの書き方について、過去に調査、回答いたしました。
http://okwave.jp/qa2457294.html
関連知識としてご参考いただければ幸いです。

No.2
- 回答日時:
Class-Path: にeclipseのパスしか指定してないから、カレントは探さずに、そこだけ探して
「main()関数を持つクラスを発見できない」と返ってくるのでしょう。
No1の方の回答のように、コマンドラインで -classpath を指定すれば実行できますけど、それだと、ダブルクリックでの実行は出来ません。
javaのドキュメントによれば、ここには「相対 URL を指定する。URL は 1 つ以上の空白で区切る。」
とあるので、「./」 でカレントパスを意味し、この指定により、自分のアーカイブ内のクラスを探します。
Class-Path: ./ ./xxx.jar
あと、他のPC(eclipseが入っていない)で実行することを考えるなら、eclipseのライブラリもそのアーカイバに含めるか、再配布が許されていないなら、使わずに作る必要があるでしょう。
windowを開くだけのプログラムに、そこまでのライブラリが必要とは思えないけど。
No.1
- 回答日時:
Eclipseで、配布可能なJARファイルを作成する方法
私は、Eclipse2.xを使ってます。
1.プロジェクト右クリック⇒エクスポート⇒JARファイル
生成されたクラス・ファイルとリソースをエクスポートにチェックON
エクスポート先(JARファイルの出力先)を選択
(ここでJARファイル名も決定します。)
終了を押下
でJARファイルが出来ると思います。
ちなみに、コマンドラインから作成する方法は
D:\>cd D:\java\project01\classes
classファイルのあるフォルダ(ここではD:\java\project01\classes)へ移動し
D:\java\project01\classes>jar cvf project.jar *
マニフェストが追加されました。
hoge.class を追加中です。(入 = 0) (出 = 0)(0% 格納されました)
D:\java\project01\classes>dir
hoge.class project.jar
JARファイルの中身を確認するには
オプション tvf を使用します。
D:\java\project01\classes>jar tvf project.jar
0 Mon Nov 27 14:55:56 JST 2006 META-INF/
71 Mon Nov 27 14:55:56 JST 2006 META-INF/MANIFEST.MF
0 Mon Nov 27 14:54:50 JST 2006 hoge.class
JARファイルに含まれるクラスを実行するには
D:\java\project01\classes>java -classpath project.jar hoge
hoge!
#hoge.java
public class hoge {
public static void main(String[] args) {
System.out.println("hoge!");
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
- UNIX・Linux VScodeでjarファイルを開く方法 1 2022/06/03 17:00
- アプリ jarを変換する方法 2 2022/06/04 14:26
- PHP アップロードファイルの数に応じてCSSを動的に変更したいのですが、方法がわかりません 3 2023/07/23 21:59
- Java eclipse実行ができない 2 2022/07/27 04:47
- Java マイクラjavaでForgeを入れたいのですが、インストールした.jarファイルが展開されてしまい中 1 2023/07/28 22:30
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Eclipse・プロジェクトで、フォ...
-
Eclipse「リフレッシュ」と「ク...
-
classファイルについて
-
SVFの設定について:クラスパス...
-
javaクラスファイルをEclipseで...
-
eclipse でclassesフォルダーが...
-
【Eclipse】パッケージ・エクス...
-
eclipseでjarのエクスポートが...
-
org.apache.tools.zip.* を使っ...
-
サーバから落としてきたWebアプ...
-
ResourceBundleクラスの使い方
-
コンパイルをしようとするとエ...
-
java クラスファイルとソースコ...
-
earファイルを展開する方法
-
ejb-jarファイルの間違いが分か...
-
JARファイル・JARコマンドに関して
-
コンパイルした後 java (class...
-
javaで3Dを作りたいんですが、...
-
JARの使い方
-
FileWriterで8kb以上書き込むに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
classファイルについて
-
SVFの設定について:クラスパス...
-
Eclipse・プロジェクトで、フォ...
-
javaクラスファイルをEclipseで...
-
Eclipse「リフレッシュ」と「ク...
-
earファイルを展開する方法
-
eclipse でclassesフォルダーが...
-
「メイン・マニフェスト属性が...
-
jdbcドライバのjarファイルにク...
-
【Eclipse】パッケージ・エクス...
-
java クラスファイルとソースコ...
-
プログラム実行の際に、「ソー...
-
EclipseでHTTP404エラーが出る。
-
Jarコマンドでマニフェストファ...
-
「main メソッドを持つクラスが...
-
サーバから落としてきたWebアプ...
-
EclipseでのJSP・Servlet開発に...
-
「削除するか、クラスパスの正...
-
ファイルのパスの取得について
-
VisualStudioでC++クラスを追加...
おすすめ情報