package com.bruceeckel.simple;public class List {
public List() {
System.out.println("com.bruceeckel.util.List");
}
}
编译完成,生成目录 .class已在目录中。
import com.bruceeckel.simple.*;public class LibTest { public static void main(String[] args) {
List l = new List();
}
}javac LibTest.java 报错无法访问List把当前目录中的List.java删除或放到其他目录就能编译通过!这是为什么啊?谢谢高人解答!
public List() {
System.out.println("com.bruceeckel.util.List");
}
}
编译完成,生成目录 .class已在目录中。
import com.bruceeckel.simple.*;public class LibTest { public static void main(String[] args) {
List l = new List();
}
}javac LibTest.java 报错无法访问List把当前目录中的List.java删除或放到其他目录就能编译通过!这是为什么啊?谢谢高人解答!
解析:那是因为,写为
import com.bruceeckel.simple.*;
时,List.java和LibTest.java都放在根目录下,就是说当List.java和LibTest.java在同一个文件夹中时,编译LibTest.java,编译器就在当前目录下寻找是否有List.class,没有所以就报错。但是,如果是
import com.bruceeckel.simple.List;
编译器就会直接按照所给路径寻找类List。建议,引入自定义包中类时,把包名和类都写出来。
}
用import com.bruceeckel.simple.*; 也是报错,跟目录就不能出现List.java