[b]SWT/JFace : java.lang.NoClassDefFoundError: org/eclipse/core/runtime/IProgressMonitor -[/b]
SWT/JFace 的 HellowWorld 还是比较难搞的:
第一道门槛 : Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3139 in java.library.path
因为SWT使用了JNI调用C,所以你需要把相对应版本的dll文件(swt-win32-xxxx.dll)copy到C:/windows/system32下面.
第二道门槛 : java.lang.NoClassDefFoundError: org/eclipse/core/runtime/IProgressMonitor
很多人说导入org.eclipse.core.runtime_x.x.x.jar 就ok,但你自己试试就知道并不是所有版本的org.eclipse.core.runtime_x.x.x.jar 里都有IProgressMonitor这个class.
所以即使你导入了org.eclipse.core.runtime_x.x.x.jar 到project也可能无济于事。
去plugins下面找找org.eclipse.equinox.common.x.x.x.jar,然后导入到project ,你会发现IProgressMonitor 悠然的躺在那里。
第三道门槛 : Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/commands/common/EventManager
解决了上面两个问题以为大功告成,其实还差一步。导入org.eclipse.core.commandsx.x.x.jar到project中,我们的第一个SWT/JFace就能跑起来了。
SWT/JFace 的 HellowWorld 还是比较难搞的:
第一道门槛 : Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3139 in java.library.path
因为SWT使用了JNI调用C,所以你需要把相对应版本的dll文件(swt-win32-xxxx.dll)copy到C:/windows/system32下面.
第二道门槛 : java.lang.NoClassDefFoundError: org/eclipse/core/runtime/IProgressMonitor
很多人说导入org.eclipse.core.runtime_x.x.x.jar 就ok,但你自己试试就知道并不是所有版本的org.eclipse.core.runtime_x.x.x.jar 里都有IProgressMonitor这个class.
所以即使你导入了org.eclipse.core.runtime_x.x.x.jar 到project也可能无济于事。
去plugins下面找找org.eclipse.equinox.common.x.x.x.jar,然后导入到project ,你会发现IProgressMonitor 悠然的躺在那里。
第三道门槛 : Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/commands/common/EventManager
解决了上面两个问题以为大功告成,其实还差一步。导入org.eclipse.core.commandsx.x.x.jar到project中,我们的第一个SWT/JFace就能跑起来了。