classpat的问题吧
D:\gt3test\gt3tutorial\core\first
在你的classpath里面吗?

解决方案 »

  1.   

    需要在classpath中加上当前路径classpath=%classpath%;.
      

  2.   

    我的环境变量里有classpath=D:\gt3test\gt3tutorial\core\first啊?
      

  3.   

    在环境变量中加入jre文件加下的lib路径和bin路径
      

  4.   

    是在classpath里加吗?
    我加了啊,怎么还是不行啊?
      

  5.   

    我的java文件在D:\gt3test\gt3tutorial\core\first
    编译好的class文件也在D:\gt3test\gt3tutorial\core\first分别为:
    D:\gt3test\gt3tutorial\core\first\MathClient.java
    D:\gt3test\gt3tutorial\core\first\MathClient.class我运行:
    D:\gt3test\gt3tutorial\core\first>java MathClient
    就出现:
    Exception in thread "main" java.lang.NoClassDefFoundError: MathClient
      

  6.   

    这应该是典型的classpath的问题.在加classpath的时候最好是在最前面加上.;也就是加如一个当前的目录进去,你试一下,再看看会不会有错.记得如果重新设置了classpath时最好重新启动一下机器.
      

  7.   

    环境变量是这样设置的:
    CLASSPATH=.;D:\j2sdk1.4.2\bin;D:\j2sdk1.4.2\lib\tools.jar;D:\j2sdk1.4.2\lib\axis
    .jar;D:\grid\ogsa\lib\ogsa.jar;D:\gt3test;D:\grid\ogsa\lib\jaxrpc.jar;D:\gt3test
    \gt3tutorial\core\first;D:\j2sdk1.4.2\jre\bin;D:\j2sdk1.4.2\jre\lib怎么还是不行啊?
      

  8.   

    package gt3tutorial.core.first.client; 
    import gt3tutorial.core.first.Math.MathServiceLocator;
    import gt3tutorial.core.first.Math.MathPortType;
    import java.net.URL; 
    public class MathClient
    {
    public static void main(String[] args)
    {
    try
    {
    // Get command-line arguments
    int a = Integer.parseInt(args[1]);//控制台输入的参数2
    int b = Integer.parseInt(args[2]);//控制台输入的参数3
    URL GSH = new java.net.URL(args[0]); //控制台输入的参数0,获得服务句柄
    // Get a reference to the remote web service
    MathServiceLocator mathService = new MathServiceLocator();
    MathPortType math = mathService.getMathService(GSH); 
    // Call remote method 'add'
    int sum = math.add(a,b); 
    // Print result
    System.out.println(a + " + " + b + " = " + sum);
    }catch(Exception e)
    {
    System.out.println("ERROR!");
    e.printStackTrace();
    }
    }
    }
      

  9.   

    环境变量的问题,在classpath里加上一个".;",表示当前路径!
      

  10.   

    你的java命令写错了,应该类包含在包中,在命令行中先退到D:\gt3test\目录下,然后执行java gt3tutorial.core.first.client.MathClient 命令
      

  11.   

    勘误:
    你的java命令写错了,应该类包含在包中,在命令行中先退到D:\gt3test\目录下,然后执行java gt3tutorial.core.first.client.MathClient 命令
    改为:
    你的java命令写错了,类包含在包中,执行时要写完整的路径名.在命令行中先退到D:\gt3test\目录下,然后执行java gt3tutorial.core.first.client.MathClient 命令
      

  12.   

    看出来了,因为你这个程序是属于gt3tutorial.core.first.client这个包的,所以你应该把你的程序放在名字为client的文件夹里面,再把client文件夹放在名字为first的文件夹里,同理,first放在core文件夹里,core放在gt3tutorial文件夹里,也就是把程序MathClient.java放在gt3tutorial/core/first/client这个目录里,编译后,执行java gt3tutorial.core.first.client.MathClient 命令就行了,你原来的错误是放在了first里面,当然不行了
      

  13.   

    D:\gt3test>set classpath=.;%classpath%

    D:\gt3test>set classpath=D:\gt3test;%classpath%
    然后
    D:\gt3test>java gt3tutorial.core.first.MathClient