新建Hyperlink出现java.lang.ClassNotFoundException异常,请高手们指点!
是什么问题引起以下异常:原代码如下:
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.forms.events.HyperlinkAdapter;
import org.eclipse.ui.forms.events.HyperlinkEvent;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.Hyperlink;
import org.eclipse.ui.forms.widgets.TableWrapLayout;public class Hyperlink1 {
public static void main(String[] args) {
final Display display = Display.getDefault();
final Shell shell = new Shell();
shell.setSize(327, 253);
// ---------创建窗口中的其他界面组件-------------
shell.setLayout(new FillLayout());
FormToolkit toolkit = new FormToolkit(display);
Composite comp = toolkit.createComposite(shell);
comp.setLayout(new TableWrapLayout());
Hyperlink link = toolkit.createHyperlink(comp, "子在川上曰", SWT.WRAP);
link.setHref("http://www.csdn.net");
link.addHyperlinkListener(new HyperlinkAdapter() {
public void linkActivated(HyperlinkEvent e) {
// 打印结果是“子在川上曰:http://www.chengang.com.cn”
System.out.println(e.getLabel() + ":" + e.getHref());
}
}); // -----------------END------------------------
shell.layout();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}异常明细如下:
Exception in thread "main" java.lang.NoClassDefFoundError: com/ibm/icu/text/BreakIterator
at org.eclipse.ui.internal.forms.widgets.FormUtil.computeWrapSize(FormUtil.java:122)
at org.eclipse.ui.forms.widgets.Hyperlink.computeTextSize(Hyperlink.java:199)
at org.eclipse.ui.forms.widgets.Hyperlink.computeSize(Hyperlink.java:125)
at org.eclipse.ui.forms.widgets.SizeCache.controlComputeSize(SizeCache.java:390)
at org.eclipse.ui.forms.widgets.SizeCache.computeMinimumWidth(SizeCache.java:429)
at org.eclipse.ui.forms.widgets.TableWrapLayout.calculateMinimumColumnWidths(TableWrapLayout.java:764)
at org.eclipse.ui.forms.widgets.TableWrapLayout.internalGetMinimumWidth(TableWrapLayout.java:704)
at org.eclipse.ui.forms.widgets.TableWrapLayout.layout(TableWrapLayout.java:233)
at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:989)
at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1386)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3317)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4025)
at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:1927)
at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3334)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4025)
at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method)
at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1225)
at org.eclipse.swt.widgets.Control.setBounds(Control.java:2133)
at org.eclipse.swt.widgets.Control.setBounds(Control.java:2115)
at org.eclipse.swt.widgets.Control.setBounds(Control.java:2111)
at org.eclipse.swt.layout.FillLayout.layout(FillLayout.java:198)
at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:989)
at org.eclipse.swt.widgets.Composite.layout(Composite.java:531)
at org.eclipse.swt.widgets.Composite.layout(Composite.java:496)
at org.eclipse.swt.widgets.Composite.layout(Composite.java:466)
at myTest.Hyperlink1.main(Hyperlink1.java:43)
Caused by: java.lang.ClassNotFoundException: com.ibm.icu.text.BreakIterator
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)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 28 more