免責事項:
これは、.NET GUI が Java を回避しようとする典型的なケースです。
問題の説明:
JFace と SWT を使用して非常に単純な GUI を構築しようとしています。コードは単純です (チュートリアルがたくさんあります)。それほど単純ではないのは、JFace と SWT をプラグイン プロジェクトの外で動作させることができないように見えることです。
CLASSPATH に "C:/eclipse 3.5/plugins" を入れているので、プロジェクトで JFace と SWT を問題なく使用できると期待しています (私のコンピューターから --> プロパティ --> 高度な --> 環境変数)。そして、この記事の「SWT と JFace のインストール」ボックスに示されているように、PATH にあるすべての swt-*.dll (確かに、ローカル ユーザー パスとグローバル パスの両方) を見つけることができます。
問題は、ビルドパスからjarを直接参照しない限り、eclipse.orgから何もインポートできないことです->ライブラリ->外部jarを追加します(ビルドするには、次のjarを追加する必要があります:org.eclipse.swt .win32.win32.x86_3.5.1.v3555a.jar、org.eclipse.jface_3.5.1.M20090826-0800.jar )。これを行うと問題なくビルドできますが、「Java アプリケーション」として実行すると、次のエラーが発生します (別の方法で実行する必要がありますか?)。
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/runtime/IProgressMonitor
at demo.ui.test.EntryPoint.main(EntryPoint.java:18)
Caused by: java.lang.ClassNotFoundException: org.eclipse.core.runtime.IProgressMonitor
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 1 more
ApplicationWindow
これをデバッグしようとしましたが、基本的に、クラス (org.eclipse.jface.window.ApplicationWindow)をインスタンス化しようとするとすぐにスローされます。エラーを再現しようとして、すべてのコードをコメントアウトし、メインで次のように置き換えたところ、最初の行で上記と同じエラーがスローされました。
ApplicationWindow w = new ApplicationWindow(null); //<-- error on this line
w.setBlockOnOpen(true);
w.open();
Display.getCurrent().dispose();
質問:
質問 1 : 上記のエラーを修正して (何が起こっているのか理解したいのですが) どうすれば実行できるようになりますか?
質問 2 : プロジェクトで jar が表示されないのはなぜですか?また、その作成方法は?
Java と Eclipse に慣れていないため、非常に些細なことを見落としている可能性があります。どんな助けでも大歓迎です!
編集:他の誰かが同じ問題を抱えているようです-> http://www.eclipsezone.com/eclipse/forums/t60528.html -彼らがどのように解決したかははっきりしていませんが、支援をお願いします