把swt-3.0.1-win32.zip中的4个*.dll放到D:\Program Files\j2sdk1.4.2_02\jre\bin\下,awt.jar包放在D:\Program Files\j2sdk1.4.2_02\jre\lib\ext\下面,这样每次启动vm都会加和这个包,这样配置完后在d盘建立这么个文件OpenShell.java:
//OpenShell.java
import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.*;
public class OpenShell{
public static void main(String[] args){
Display display=new Display();
Shell shell=new Shell(display);
shell.open();
while(!shell.isDisposed()){
if(!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
D:\>javac OpenShell.java编译,没有问题
D:\>java OpenShell运行,Exception in thread "main" java.lang.NoClassDefFoundError:org/eclipse/swt/widgets/Display at OpenShell.main(OpenShell.java:8)
这是怎么回事啊?????
我进去swt.jar文件里面看了,org/eclipse/swt/widgets/Display.class是存在的
高手救命啊!!!

解决方案 »

  1.   

    你的那几个dll文件,放到C:/WINNT/system32/下面,或者放到环境变量Path里面即可
      

  2.   

    那几个dll文件已经放到C:/WINNT/system32/下面了,还是不行
    一样的错误
      

  3.   

    www.source520.com     免费免注册80G源码书籍下载
      

  4.   

    运行没通过,应该是没找到DLL文件,放到Path里面试试看
      

  5.   

    运行时加上参数试试, -Djava(DLL的路径).
    具体参数格式你查查。
      

  6.   

    你的这个错误应该是在Classpath中没有找到相应的类。
    解决办法:
    一是把swt.jar加入到Classpath的环境变量中。
    二是在java命令中加入-classpath swt.jar路径。你按照这两点试一试吧。
      

  7.   

    如果还不行,把当前的class文件的路径也加到classpath中
      

  8.   

    放到system32下
    或者放到工程目录下面
    这两个方法都可以的
    或者是不是版本不对?