两个不在同一个包内,要import JDir.pack.Generator

解决方案 »

  1.   

    假设你在classpath中声明了如下路径 c:\my_class\则,这两个文件的正确放置方法是
    Generator.class  在c:\my_class\JDir\pack\Generator.class  
    Arrays2.class 的位置无所谓如果两个文件在同一个目录下,你可以把Generator.class 前面的语句去掉就可以了.其实去掉了package,隐含意味着它们在一个default package中.
      

  2.   

    import JDir.pack.*;
    是这样的
      

  3.   

    Sorry Arrays2.java应该是
    package JDir.Mypack;
    import java.util.*;
    public class Arrays2 
    {
      public static void
      fill(Object[] a,Generator gen) 
      {
              fill(a, 0, a.length, gen);
      }
      public static void
      fill(Object[] a, int from, int to,Generator gen){
        for(int i = from; i < to; i++)
          a[i] = gen.next();
      }
    }
      

  4.   

    package JDir.Mypack;
    import java.util.*;
    import JDir.Mypack.*;// add
    public class Arrays2 
    {
      public static void
      fill(Object[] a,Generator gen) 
      {
              fill(a, 0, a.length, gen);
      }
      public static void
      fill(Object[] a, int from, int to,Generator gen){
        for(int i = from; i < to; i++)
          a[i] = gen.next();
      }
    }
      

  5.   

    这样的话两个文件都要这样放置假设你在classpath中声明了如下路径 c:\my_class\则,这两个文件的正确放置方法是
    Generator.class  在c:\my_class\JDir\pack\Generator.class  
    Arrays2.class  在c:\my_class\JDir\pack\Arrays2.class  程序无需改动,如果两个都去掉package的话也可以正常运行.  当然你的classpath中要包含 "."
      

  6.   

    CLASSPATH = .;C:\files
    C:\jdir\mypack\Arrays2.java
    C:\jdir\mypack\Generator.java
      

  7.   

    假设你的这两个文件的放置方法是
    Generator.class  在c:\my_class\JDir\pack\Generator.class  
    Arrays2.class  在c:\my_class\JDir\pack\Arrays2.class  编译时
    java -cp c:\my_class   JDir.pack.Arrays2
      

  8.   

    而且,你的JDir目录的父目录(在我的例子中是c:\my_class\) 必须在classpath中已经声明过了
      

  9.   

    PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\j2sdk14\BIN; 
    SET PATH=%PATH%;%JAVAHOME%\BINPATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\JDK\BIN;SET CLASSPATH=.;C:\j2sdk14\lib\tools.jar;
    C:\JDIR;%CLASSPATH%
    我的AUTOEXEC.BAT 文件,重起之后仍然不对(Generator.java通过Arrays2.java(不通过))
      

  10.   

    首先记得在classpath里面声明你的类路径。如果你的类放在不同package,那么类一定要声明为public型此外,你编译的时候,要不在编译行中写出所有相关的类进行联编,要么
    干脆 javac *.java.
    不过后者要求所有用到的java文件在统一目录下,自然,包路径也是一样的了,对你来说没有什么意义吧。
    实在不行,请将两个类放一个包里 ,嘿嘿   :P
      

  11.   

    to: carrysilence(jafler)
    javac *.java?
      

  12.   

    to: carrysilence(jafler)
    javac *.java 成功
    TO ALL:
    我用的是TEXTPAD单独解释一个Arrays2.JAVA()
    仍有错误
    package mypack;
    public interface Generator {
      Object next();
    }
    //Arrays2.java
    package mypack;
    public class Arrays2 
    {
      public static void
      fill(Object[] a,Generator gen) 
      {
              fill(a, 0, a.length, gen);
      }
      public static void
      fill(Object[] a, int from, int to,Generator gen){
        for(int i = from; i < to; i++)
          a[i] = gen.next();
      }
    }
      

  13.   

    //Arrays2.java
    package mypack;
    interface Generator {
      Object next();
    }
    abstract class Arrays2 implements Generator
    {
      public static void 
      fill(Object[] a,Generator gen) 
      {
              fill(a, 0, a.length, gen);
      }
      public static void
      fill(Object[] a, int from, int to,Generator gen){
        for(int i = from; i < to; i++)
          a[i] = gen.next();
      }
    }
    注意Generator是个接口,所以引用时把Arrays2 class定义为abstract 
    21cnfox
      

  14.   

    CLASSPATH = .;C:\files
    C:\jdir\mypack\Arrays2.java
    C:\jdir\mypack\Generator.java//Generator.java
    package jdir.mypack;
    public interface Generator {
      Object next();
    }package jdir.mypack;
    import java.util.*;class  Arrays2
    {
    public static void main(String[] args) 
    {
    Generator gen;
    System.out.println("Hello World!");
    }
    }
    可以正常编译,注意package名字要全部小写