我编写了一个类,用package语句将其放在一个包中。但需要引用时,出现了奇怪的问题:
如果import test.类名 一切正常; 但如果import test.*; 编译出错,提示我无法操作本程序中要用到的包中的类。
*不是表示所有的类吗?为什么会出错?用类名正常,说明路径没有问题。谁遇到过?

解决方案 »

  1.   

    昨天编写webService的时候也遇到这样的问题,还不知道是什么原因.引用单个类就没问题;
    (*)不行.汗!!!
      

  2.   

    PrimNumber.java 代码如下:
    package test;public class PrimNumber

    public static void main(String args[])
    {
        int sum=0,i,j;
    for( i=1;i<=10;i++) //找出10以内的素数.

    for(j=2;j<=i/2;j++)

    if(i%j==0)
    break;
    }

    if(j>i/2) System.out.print(" 素数 "+i);
    }
    }
    }Hello.java 如下:
    import test.PrimNumber;    /*写成 import test.*;  就编译出错,说cann't access PrimNumber,说什么类文件坏了之类的错误。但单独执行PrimNumber没错,而且强行import也对,问题很怪异呀,是jdk的吗?*/
    public class Hello

    public static void main(String args[])
    {
    PrimNumber num=new PrimNumber();
    String a[]={"ok"};
    System.out.println(a[0]);
    num.main(a);
    }
    }
      

  3.   

    目录结构绝对正确,包的结构还是能搞清楚的,classpath中也包括.;
    Hello.java 与test目录在同一层次,肯定没问题。
    强制指定类名没错呀,而且如果用jdk的包,用*也可以,单单自定义包不行。
      

  4.   

    在Hello.java 中别用PrimNumber num=new PrimNumber();num.main(a);
    的方式来调用PrimNumber.java中的main,你改成这样试试:
    import test.*;//或者import test.PrimNumber;都可以
    public class Hello

    public static void main(String args[])
    {
    //PrimNumber num=new PrimNumber();
    String a[]={"ok"};
    System.out.println(a[0]);
    PrimNumber.main(a);
    }
    }
      

  5.   

    Static方法可以直接对类调用Static方法,不用实例化
      

  6.   


    public class Hello

    public static void main(String args[])
    {
    PrimNumber num=new PrimNumber();
    String a[]={"ok"};
    System.out.println(a[0]);
    num.main(a);
    }
    }请给上面这个类也打个包
      

  7.   

    楼主你的代码没有问题
    我刚用MyEclipse 5.0下用
    import test.*;引入
    都好使。输出如下:
    ok
     素数 1 素数 2 素数 3 素数 5 素数 7
    可能是你的环境问题。
      

  8.   

    应该是和环境有关系,我刚才试了一下,如果用Eclipse3的,就只能是我之前说的那种方式才行;如果是在dos窗口下直接敲指令,不管用哪种方式,都必须先打包才行。(两种方式的jdk,jre用的都不同)
      

  9.   

    谢谢onlykgx(还行) ,我给Hello也打包了,就对了。
    这是为什么呢?不写,不就是无名包吗? 如果要调用自己定义的包,最好调用文件也属于一个包吗?
      

  10.   

    这个就是Hello没有写package造成的。反正永远记住写package。