例一:
package my;
public class A {
}import my.*;
public class B extends A{
}
例二:
package my;
public class A {
}import my.A;
public class B extends A {
}
例三:
package my;
public class A {
}package my2;
import my.*;
public class B extends A {
}在classpath设置正确的情况下用javac编译,后两个可以通过编译,第一个不能通过编译
不知这是什么原因?
package my;
public class A {
}import my.*;
public class B extends A{
}
例二:
package my;
public class A {
}import my.A;
public class B extends A {
}
例三:
package my;
public class A {
}package my2;
import my.*;
public class B extends A {
}在classpath设置正确的情况下用javac编译,后两个可以通过编译,第一个不能通过编译
不知这是什么原因?
你删掉试一下
bad class file: C:\a\A.java
file does not contain class A
Please remove or make sure it appears in the correct subdirectory of the classpath.
public class B extends A{
^
是这个错吧
删掉A.java就可以,具体原因不清楚,还要找源文件
.\\my\\A.java
.\\B.java然后再进行编译
为什么在不删除a.java的时候b.java不能编译如果有人知道原因请告知 ,非常感谢!!!
在import my.*的情况下,
A.java和A.class都不能与b.class在同一各目录下,否则会错误,可能与java编译器的编译算法有关如过将A.java或者A.class放在my2目录下,第三种情况依然不能编译,并且错误是一样的估计是在没指明import哪个class情况下,编译器先在b.class下寻找A.class
结果发现了A.java,然后怎么就认为A.class也在同一目录下,从而导致了错误