1 当他们都在一个目录下的时候可以直接调用a生成的对象的方法
2 如果不在一个目录下,那么需要把a.java打包,然后b.java可以通过import来引入a.java

解决方案 »

  1.   

    在b中
    a test1 = new a();
    test1.method();
    具体错误是什么?
      

  2.   

    即使是在一个文件夹下面,也要在每个类文件的前面用package声明才可以。而autoexec中的classpath的设置是表示系统包的地方。不用重新设置。
      

  3.   

    只要在引用了a.java类的语句中都有无法解析这个表示符的错误!
    can not resolve symbol
      

  4.   

    如何用package声明?
    我写了好像也没有用,是不是 package XXXXX.XXX.a
      

  5.   

    在class a中用package声明后,会把class a包含在package xxxxx.xxx.a中,
    然后在class b的代码最开头注明import 你刚才打的a的那个包就行了。
    不知道,对不对?
      

  6.   

    先建一个目录 目录名叫 t
    然后 目录里的类 前面都加上 package t
      

  7.   

    (以下程序在w2k,j2sdk1.4.0下测试通过)假设我在类Hello中:import Log.log;
    类Hello和Log都是自己写的。
    1)编写java文件
    文件Hello.java
    package Hello;
    import Log.*;
    public class Hello{
        public static void main(String[] args){
            System.out.println("hello");
            Log log=new Log("hello");
            log.printit();
        }    
    }文件Log.javapackage Log;public class Log{
        private String s;
        public Log(String str){
            s=str;
        }
        public void printit(){
            System.out.println(s);
        }
    }
    2)编写SetEnv1.bat
    set JAVA_HOME=c:\j2sdk1.4.0
    set PATH=c:\j2sdk1.4.0\bin3)编译Log.java并打包成Log.jar
    md temp//临时目录存放Log.class
    javac -d temp Log\*.java 
    cd temp
    jar cvf Log.jar Log  
    cd..4)编写SetEnv2.batset JAVA_HOME=c:\j2sdk1.4.0
    set PATH=c:\j2sdk1.4.0\bin
    set CLASSPATH=.;C:\Hello\Lib\Log.jar5)编译Hello.java
    md Classes//临时目录
    javac -d Classes Hello\*.java 6)编写Run.batcd classes
    java Hello.Hello
      

  8.   

    真的入楼上的所说有这么麻烦吗?我觉得不应该有这么麻烦! colin1022(暗夜要爪哇) 的方法我试了没有用,对象我也实例化了!但是还是有这样的问题!
      

  9.   

    当然了,简单地说
    1)打包a.class 成a.jar
    2) 将a.jar包含进路径CLASSPATH
    3) 在b.java中通过import方式使用a.class
      

  10.   

    在classpath中加上点和分号(.;)试试
      

  11.   

    上面Hello类和Log类代码我不是已经贴出来了吗。
      

  12.   

    对的,我的classpath中加了点和分号。没用
      

  13.   

    package xxx.xxx.a;
    a source....将a的代码编译。
    以下为b的代码:
    package xxx.xxx.a;//与a代码中的包名字相同
    import xxx.xxx.*;/**加入含有class a 的包,你可以使用此包中的任何类,也许你编译a时,生成了多个类文件*/
    b source....这样行了吗?
      

  14.   

    如果还不行,
    联系我[email protected]
      

  15.   

    你这个问题提得不错。
    如果我在a.java文件中想调用java.lang.String类
    而我又把a.java 文件中加上
    package java.lang
    会出现什么问题呢?
    测试如下程序
    package java.lang;
    public class a{
        public static void main(String[] args){
            System.out.println("hello");        
        }    
    }
    测试结果:
    Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.lang
            at java.lang.ClassLoader.defineClass(ClassLoader.java:495)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:246)
            at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
      

  16.   

    package xxx.xxx.a;
    a source....将a的代码编译。
    以下为b的代码:
    package xxx.xxx.a;//与a代码中的包名字相同
    import xxx.xxx.*;/**加入含有class a 的包,你可以使用此包中的任何类,也许你编译a时,生成了多个类文件*/
    b source....这样行了吗?
    ==============================================
    所以,《package xxx.xxx.a;//与a代码中的包名字相同》
    是不正确的。