市面几本书里内容都有点老,写的需要添加的外部jar包都不完全对,HelloJFace在Eclipse Indigo SR2编译都通不过,会报:
java.lang.NoClassDefFoundError: org/eclipse/core/runtime/IProgressMonitor
原因是IProgressMonitor在org.eclipse.equinox.common_version.jar里,添加之后又会报:
java.lang.NoClassDefFoundError: org/eclipse/core/commands/common/EventManager
添加org.eclipse.core.commands_version.jar即可。
删除多余jar后,发现HelloJFace运行只需要四个jar:
org.eclipse.swt.win32.win32.x86_version.jar
org.eclipse.jface_version.jar
org.eclipse.equinox.common_version.jar
org.eclipse.core.commands_version.jarHelloJFace示例:
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Text;
public class HelloJFace extends ApplicationWindow{
public HelloJFace() {
super(null);
}
protected Control createContents(Composite parent) {
Text helloText = new Text(parent, SWT.CENTER);
helloText.setText("Hello JFace");
parent.pack();
return parent;
}
public static void main(String[] args) {
HelloJFace win = new HelloJFace();
win.setBlockOnOpen(true);
win.open();
Display.getCurrent().dispose();
}
}
本文介绍了一个简单的HelloJFace示例程序,并解决了在Eclipse Indigo SR2环境下编译时遇到的依赖问题。通过添加必要的jar包,实现了程序的正确运行。最终确定了HelloJFace仅需四个关键jar文件。
4748

被折叠的 条评论
为什么被折叠?



