- - PR -
SWTでWindowsアプリケーションをつくりたい
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-10-07 11:21
こんにちは、私初心者ですが、是非ご指導を宜しくお願いします。
Eclipseで簡易のブラウザーを作ったのですが、 それをJARファイルにまとめて、ダブルクリックしても、 could not find the main class. Program will exit という表示が出てしまいます。 また、コマンドプロンプトで、 C:\>java -jar miniBrowser.jar と入力すると、 Exception in thread "main" java.lang.NoClassDefFoundError : org/eclipse/swt/widge といったエラーになります。どなたかご回答を宜しく。 | ||||||||
|
投稿日時: 2006-10-08 02:02
SWTのクラスがクラスパスに存在しないからです。
設定方法はJAR ファイルの仕様のメイン属性Class-Pathの欄に書いてあります。 この設定値ではJARファイルからの相対パスを指定する事になります。 | ||||||||
|
投稿日時: 2006-10-08 09:14
JARファイル作成時にメインクラスを指定していない可能性もあります。
JAR作成をEclipseのエクスポート・ウィザードでやっているのであれば、 次へボタンを最後まで押したページで指定することが出来ます。 | ||||||||
|
投稿日時: 2006-10-08 14:28
[quote]
あしゅさんの書き込み SWTのクラスがクラスパスに存在しないからです。 設定方法は[url=http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/jar/jar.html#Manifest%20Specification]JAR ファイルの仕様[/url]のメイン属性Class-Pathの欄に書いてあります。 この設定値ではJARファイルからの相対パスを指定する事になります。 [/quote] JARをeclipseで作成する際、マニフェストを以下のように作成しました。 ------------------------ Manifest-Version: 1.0 Main-Class: miniBrowser2 Class-Path: ./swt.jar ./rt.jar ./jsse.jar ./jce.jar ./charsets.jar ./dnsns.jar ./localedata.jar ./sunjce_provider.jar ./sunpkcs11.jar ./org.eclipse.swt.win32.win32.x86_3.1.1.jar ------------------------ | ||||||||
|
投稿日時: 2006-10-08 14:34
[上文続き] しかし、結果は変わりません。
Exception in thread "main" java.lang.NoClassDefFoundError : org/eclipse/swt/widgets/composite となります。 | ||||||||
|
投稿日時: 2006-10-08 15:18
一旦、 java -classpath miniBrowser.jar foo.Bar のように main のクラス名を指定する起動方法で試してみてはどうでしょうか。 (上記例は foo パッケージの Bar クラスに main がある場合。) また、今は main メソッドすら見つかっていない段階ですので、SWT をまったく使わないで HelloWorld だけ println するような jar を作ってうまく動くかどうかを確認し直しされたほうが良いと思います。 #以下、あとで追加。 引用個所を間違えました。
の部分を引用したかったのです(main クラスと、NoClassDefFoundError で表示される main スレッドとを勘違いしていました)。 でもこれって NoClassDefFoundError とは意味が違いますよね。エラーメッセージの意味が、試さないと分からなくなってきました。 -- unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86} [ メッセージ編集済み 編集者: unibon 編集日時 2006-10-08 17:20 ] | ||||||||
|
投稿日時: 2006-10-09 00:20
確かにSWTは面倒ですね。クラスがたくさん必要で。 私のお勧めはjsmooth下なんかで実行ファイルとしてしまう方法です。 まぁ、結局は。 jara -cp swt.jar;org.eclipse.core.runtime_3.1.1.jar minibrowser.jar foo.Bar とやるのと一緒ですけど。 | ||||||||
|
投稿日時: 2006-10-09 12:14
eclipseの[実行]-[Javaアプリケーション]
で実行した場合はうまくいくんですが、 それをJARにするやり方が、いまいちわからないです。 |