免责声明:
这是 .NET GUI 试图解决 JAVA 问题的典型案例。
问题描述:
我正在尝试使用 JFace 和 SWT 构建一个非常简单的 GUI - 代码很简单(有很多教程),但不那么简单的是我似乎无法让 JFace 和 SWT 在插件项目之外工作。
我希望能够在我的项目中毫无麻烦地使用 JFace 和 SWT,因为我将“C:/eclipse 3.5/plugins”放在我的 CLASSPATH 中(来自我的计算机 --> 属性 --> 高级 --> 环境变量)以及我可以在我的路径(当然包括本地用户路径和全局路径)中找到的所有 swt-*.dll本文 http://www.ibm.com/developerworks/opensource/library/os-jface1/在“安装 SWT 和 JFace”框中指示。
问题是我无法从 eclipse.org 导入任何内容,除非我直接引用 buildpath --> 库 --> 添加外部 jar 中的 jar(为了构建它,我必须添加以下 jar:org.eclipse.swt.win32.win32.x86_3.5.1.v3555a.jar, org.eclipse.jface_3.5.1.M20090826-0800.jar)。一旦我这样做了,它就构建得很好,但是当我将它作为“Java应用程序”运行时,我收到以下错误(我应该RUN AS还有别的吗?):
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)。尝试重现该错误,我注释掉了所有代码,并将其替换为我的 main 中的以下代码,它在第一行抛出了与上面相同的错误:
ApplicationWindow w = new ApplicationWindow(null); //<-- error on this line
w.setBlockOnOpen(true);
w.open();
Display.getCurrent().dispose();
问题:
问题1:我怎样才能修复上面的错误(我想了解发生了什么)并让该死的东西运行?
问题2:为什么这些罐子对我的项目不可见以及如何制作它们?
由于我对 Java 和 Eclipse 不熟悉,我可能错过了一些非常琐碎的事情。非常感谢任何帮助!
EDIT: 好像有人也遇到同样的问题 -->http://www.eclipsezone.com/eclipse/forums/t60528.html http://www.eclipsezone.com/eclipse/forums/t60528.html- 不太清楚他们是如何解决的,感谢帮助