- PR -

SWTアプリケーションのjar化

1
投稿者投稿内容
JBOY
ベテラン
会議室デビュー日: 2003/02/27
投稿数: 72
投稿日時: 2004-05-13 14:58
お世話になります。
SWTを使用したアプリケーションを作成し、それをjarに纏めたのですが、
コマンドプロンプトからの実行時に
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Layout
が発生してしまいます。

jarは以下のような構造になっています。
jar内のjarにパスを設定するにはどうしたらよいのでしょうか?
jdk versionは1.4.0_01です
コード:

HelloWorld.jar
hello
|
−swt.jar
|
−swt-win32-2136.dll
|
  −META-INF
|
−world
|
−Main.class



[ メッセージ編集済み 編集者: JBOY 編集日時 2004-05-13 15:00 ]
Wata
ぬし
会議室デビュー日: 2003/05/17
投稿数: 279
投稿日時: 2004-05-13 16:30
jarに含めるMANIFESTファイルに実行時に必要なライブラリを相対パスで
記述することができます。

詳しくは、こちらを参照してください。
http://www.fk.urban.ne.jp/home/kishida/kouza/old/javajar.html
わらび
ベテラン
会議室デビュー日: 2002/08/30
投稿数: 53
投稿日時: 2004-05-13 17:16
ところで、jar内のjarって見れるんでしたっけ?
一度解凍してから、まとめてjarにしなければいけなかったような気が。。。
Wata
ぬし
会議室デビュー日: 2003/05/17
投稿数: 279
投稿日時: 2004-05-13 17:42
引用:

わらびさんの書き込み (2004-05-13 17:16) より:
ところで、jar内のjarって見れるんでしたっけ?
一度解凍してから、まとめてjarにしなければいけなかったような気が。。。


そうです。上の相対パスうんぬんはjarの外のjarの相対パスです。
まあ、URLClassLoaderとか使ってごちゃごちゃやればできそうな気もしますが、
そういう話じゃないですよね。
わらび
ベテラン
会議室デビュー日: 2002/08/30
投稿数: 53
投稿日時: 2004-05-13 18:49
こんばんは。わらびです。

引用:

Wataさんの書き込み (2004-05-13 17:42) より:
そうです。上の相対パスうんぬんはjarの外のjarの相対パスです。



ですよね。
ということは、

引用:

JBOYさんの書き込み (2004-05-13 14:58) より:
jarは以下のような構造になっています。
jar内のjarにパスを設定するにはどうしたらよいのでしょうか?



jar内のjarは(簡単には)見れませんので、内部のjarは解凍して、再度jarを
作ってください。
JBOY
ベテラン
会議室デビュー日: 2003/02/27
投稿数: 72
投稿日時: 2004-05-14 09:55
jar内のjarを見るのは難しいというのがわかりましたので、
classを纏めたjarと、swt.jar、swt-win32-2136.dllを
同じ位置におき、MANIFESTファイルのClass Pathを設定することで、
アプリを動作させることが出来ました。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)