- - PR -
SWTのソースをjarに変更しました。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-05-12 19:22
初めて投稿します。
よろしくお願いします。 現在「eclipse」で開発を行っております。 「SWT」というフレームワークを使用しているのですが プロジェクトを「jar」にまとめたあと実行ができなくて困っています。 「eclipse」上では実行できます。 「SWT」は「eclipse」のライブラリーの追加より追加しました。 以下の様に実行しました。 jarファイル = test.jar eclipseの「swt-win32-3139.dll」ファイルのパス=「C:\eclipse\configuration\org.eclipse.osgi\bundles\189\1\.cp」 実行内容 java -cp "C:\test\test.jar" -Djava.library.path="C:\eclipse\configuration\org.eclipse.osgi\bundles\189\1\.cp" TestGamen すると 「Exception in thread "main" java.lang.NoClassDefFoundError:org/eclipse/swt/widgets/Composite」 とゆうエラーがでました。DLLの設定がおかしいのでしょうか? もし、お分かりになる方がいらっしゃいましたら 教えて頂けると助かります。 | ||||
|
投稿日時: 2006-05-12 20:05
こんばんは。
#間違っていたらごめんなさい。
DLLのほかにも、swt.jarって必要じゃないんでしょうか? | ||||
|
投稿日時: 2006-05-12 20:29
すばやいお返事 ありがとうございます。 「org.eclipse.swt.win32.win32.x86_3.1.1.jar」 というファイルを一緒にまとめて置いています。 == 「.classpath」のファイルの中に 以下のような記述がありますから、関連付けはされていると認識しましたけど、 もしかしたらここが違うかもですか?? <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="lib" path="lib/org.eclipse.swt.win32.win32.x86_3.1.1.jar"/> | ||||
|
投稿日時: 2006-05-12 20:34
この「実行内容」というのがJavaの実行コマンドそのものであれば、クラスパスには testtest.jarしか設定されていませんね。どのように実行したのですか? | ||||
|
投稿日時: 2006-05-12 20:58
お返事ありがとうございます。
「テスト実行.bat」 というファイルを作成し、その中に記述しました。 その中では「testtest.jar」ファイルのみクラスパスに設定していませんが、 「testtest.jar」の中身が === lib フォルダ libの中 org.eclipse.swt.win32.win32.x86_3.1.1.jar META=INF フォルダ .classpath .project TestGamen.class TestGamen.java === になっています。 「.classpath」ファイルの中に <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="lib" path="lib/org.eclipse.swt.win32.win32.x86_3.1.1.jar"/> <classpathentry kind="output" path="bin"/> </classpath> と記述されてあるので、この内部でクラスパスの設定をしているのかと 思いましたが 違ったでしょうか??? | ||||
|
投稿日時: 2006-05-13 01:15
.classpathや.projectはEclipseがどのようにクラスを解決するのか、 ソースの構成がどうなっているか、等の情報を含んだファイルなので、 javaコマンドで直接実行しようとした場合は何の意味もありません。 /META-INF/に入れるべきものは、「manifest.mf」というファイルです。 http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/jar/jar.html Eclipseでアプリケーションを動かす場合は、Eclipseが-classpath引数 等を自動的に指定してjavaコマンドを起動してくれているんですね。 | ||||
|
投稿日時: 2006-05-13 10:33
おはようございます。みかです。
=== .classpathや.projectはEclipseがどのようにクラスを解決するのか、 ソースの構成がどうなっているか、等の情報を含んだファイルなので、 javaコマンドで直接実行しようとした場合は何の意味もありません。 === なるほど。わかりました。 私は勝手に関連づけられていると思っていましたが関連づけられていなかったのですね。 みなさんがおっしゃっていたクラスパスに設定されていないという意味がわかりました。 以下で実行したら動作しました。 皆さんありがとうございました。 === java -cp "C:\Documents and Settings\Administrator\デスクトップ\テスト画面\test.jar";"C:\Documents and Settings\Administrator\デスクトップ\テスト画面\org.eclipse.swt.win32.win32.x86_3.1.1.jar" -Djava.library.path="C:\eclipse\configuration\org.eclipse.osgi\bundles\189\1\.cp" TestGamen === |
1