class 1:
package MyPackage;public class MathLib
{
public int Add(int x,int y){
return x+y;
}
}class 2:
package MyPackage;class MathClient
{
public static void main(){
MathLib mathObj=new MathLib();
System.out.println(Client.mathObj.Add(8,7));
}
}
问题是:如何编译运行class 2 ?请写得细一点  谢谢!

解决方案 »

  1.   

    更正 System.out.println(Client.mathObj.Add(8,7)); 
    改为:System.out.println(mathObj.Add(8,7));
      

  2.   

    如果在一个文件里面,需要把
    public class MathLib{
    }
    class MathClient{
    }改成:
    class MathLib{
    }
    public class MathClient{
    }由于你的mai()放在了MathClient,所以要把MathClient设成public
      

  3.   


    class 1:
    package MyPackage;public class MathLib
    {
    public int Add(int x,int y){
    return x+y;
    }
    }class 2:
    package MyPackage;class MathClient
    {
    public static void main(String[] args){
    MathLib mathObj=new MathLib();
    System.out.println(Client.mathObj.Add(8,7));
    }
    } 命令行编译步骤:
    1.切换到MyPackage的父目录,执行:javac MyPackage/MathClient.java
    2.执行:java MyPackage.MathClient
    环境:Windows XP sp2+JDK1.6.10
      

  4.   

    什么意思?
    只要编译MathClient这个class,MathLib也就编译了
    照楼上的操作就好了
      

  5.   

    public static void main(String [] args)你的main方法没有参数,所以jvm 不认为它是默认的启动方法
      

  6.   

    先编译class1
    在编译class2, javac 可以带classpath 选项
    jave 可以带classpath 选项
      

  7.   

    代码 修改为:
    class 1  code:package MyPackage;
    public class MathLib
    {
    public int Add(int x,int y){
    return x+y;
    }
    }
    第一个类编译没有问题。关键是第二个类怎样才能编译呢。
    这两个类是单独的两个类,只是都有package MyPackage;class 2  code:package MyPackage;
    class MathClient
    { public static void main(String []args){
    MathLib mathObj=new MathLib();
    System.out.println(mathObj.Add(8,7));
    }
    }
      

  8.   

    代码 修改为:
    class 1  code:package MyPackage;
    public class MathLib
    {
    public int Add(int x,int y){
    return x+y;
    }
    }
    第一个类编译没有问题。关键是第二个类怎样才能编译呢。
    这两个类是单独的两个类,只是都有package MyPackage;class 2  code:package MyPackage;
    class MathClient
    { public static void main(String []args){
    MathLib mathObj=new MathLib();
    System.out.println(mathObj.Add(8,7));
    }
    }
      

  9.   

    5楼都提示了按我在4楼写的操作,楼主还在问,晕。
    我在详细一点:
    class code1 保存为MathLib.java
    class code2 保存为MathClient.java
    两个.java文件都要放在MyPackage文件夹下,然后用命令行编译步骤:
    step 1.切换到MyPackage的父目录,执行:javac MyPackage/MathClient.java
    step 2.执行:java MyPackage.MathClient
    执行结果:15
    环境:Windows XP sp2+JDK1.6.10
    这个会自动把两个类都编译的。
      

  10.   

    问题已经解决了,主要问题出在我没建MyPackage文件夹。解决步骤:
    先建立一个MyPackgae文件夹,例如:d:\MyPackage  。在MyPackage中编写这两个类的源代码。之后执行命令,如:
    D:\MyPackage>javac -d D:\MyPackage MathLib.java
    命令执行完,会通过编译,并自动在D:\MyPackage下创建一个MyPackage文件夹,
    然后MathLib.class文件会在d:\MyPackage\MyPackage里面。MathLib通过编译后,现在编译MathClient类。执行命令:
    D:\MyPackage>javac -cp . -d D:\MyPackage MathClient.java
    这样MathClient类也会通过编译。运行时,如 :
    D:\MyPackage>java -cp . MyPackage.MathClient
    结果15我用的是JDK1.5,系统是XP。谢谢大家的帮助!!  结贴去 。