我正在阅读一本书中的例子,我遇到了错误,我不知道究竟是什么导致它以及如何解决它。
操作系统:Windows7 64位,适用于Java开发人员的Eclipse IDE,JFace已安装或更好地说是附加到项目的jar,默认的是Eclipse:
以下是应用程序代码:
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.TableLayout;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
public class TableLayoutExample {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setSize(500, 400);
shell.setText("Table Example");
shell.setLayout(new FillLayout());
TableLayout layout = new TableLayout();
layout.addColumnData(new ColumnWeightData(40, 80, true));
layout.addColumnData(new ColumnWeightData(40, 80, true));
layout.addColumnData(new ColumnWeightData(40, 80, true));
Table table = new Table(shell, SWT.SINGLE);
table.setLayout(layout);
TableColumn column1 = new TableColumn(table, SWT.CENTER);
TableColumn column2 = new TableColumn(table, SWT.CENTER);
TableColumn column3 = new TableColumn(table, SWT.CENTER);
TableItem item = new TableItem(table, SWT.NONE);
item.setText(new String[] { "column 1", "column 2", "column 3" });
item = new TableItem(table, SWT.NONE);
item.setText(new String[] { "a", "b", "c" });
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
这是错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/runtime/Assert
at org.eclipse.jface.viewers.ColumnWeightData.<init>(ColumnWeightData.java:70)
at TableLayoutExample.main(TableLayoutExample.java:21)
Caused by: java.lang.ClassNotFoundException: org.eclipse.core.runtime.Assert
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more
任何想法可能出错?
答案 0 :(得分:2)
来自Download eclipse-equinox-common-3.5.0.jar:
Files contained in eclipse-equinox-common-3.5.0.jar:
.api_description
META-INF/ECLIPSEF.RSA
META-INF/ECLIPSEF.SF
META-INF/MANIFEST.MF
META-INF/eclipse.inf
...
org.eclipse.core.runtime.Assert.class
org.eclipse.core.runtime.AssertionFailedException.class
所以看起来你错过了eclipse-equinox-common.jar
的最新版本,或者它不在你的类路径中......