免责声明:
这是 .NET GUI 试图以自己的方式解决 JAVA 问题的经典案例。
问题描述:
我正在尝试使用 JFace 和 SWT 构建一个非常简单的 GUI - 代码很简单(有很多教程),它不是那么简单的是我似乎无法让 JFace 和 SWT 在插件项目之外工作。
我希望能够在我的项目中轻松使用 JFace 和 SWT,因为我将“C:/eclipse 3.5/plugins”放在我的 CLASSPATH 中(从我的计算机 --> 属性 --> 高级 --> 环境变量)以及我可以在我的 PATH 中找到的所有 swt-*.dll(当然包括本地用户和全局 PATH),正如本文在“安装 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应用程序”运行时,我会收到以下错误(我应该以其他方式运行吗?):
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 不熟悉,我可能遗漏了一些非常琐碎的东西。任何帮助都非常感谢!
编辑:似乎其他人也有同样的问题-> http://www.eclipsezone.com/eclipse/forums/t60528.html-虽然不太清楚他们是如何解决的,但感谢您的帮助