没有使用IDE,直接在文件系统上建了一个叫MyProject的目录,下面有一个com目录,com下有一个test目录,test目录下是.java的文件:A.java,B.java;内容如下:
package com.test;
class A {
public void f1(){}
}
package com.test;
class B{
public void f2(){
A a = new A();
}
}
编译了A之后,B编译总是通不过,报错说是 找不到符号A
请问一下这是什么问题?怎么解决,谢谢!
[b]问题补充:[/b]
问下编译通过的在class B中是不是new 了class A呢?
按照我开始的问题那样写,还是说找不到符号A,但是A,B都是在一个目录下的啊,怎么还找不到呢。。。
编译和运行的时候运行的时候:[code="java"]
D:\com\test>javac *.java //编译test底下的所有.java文件.
D:\com\test>cd \ //返回D:\目录.
D:>java com.test.className //运行className类.[/code]
[code="java"]
C:\project>javac com\test\A.java
C:\project>javac com\test\B.java
C:\project>java com.test.A
Exception in thread "main" java.lang.NoSuchMethodError: main
// 这个报错是肯定的,因为确实没有main方法. 说明已经编译好了A.class
C:\project>java com.test.B
Exception in thread "main" java.lang.NoSuchMethodError: main
// 这个报错是肯定的,因为确实没有main方法. 说明已经编译好了B.class
[/code]
LZ 比对下, 肯定是什么地方有错误.
你把A import进B的类了就好了嘛
楼主,能编译通过啊,我刚试了,我估计是的操作目录不对,这些是基础知识啊。如果不清楚去下载张孝祥的视频课程,讲的很清楚的。
下面我把我操作的步骤帖出来,希望能给你启示:
[code="java"]
C:\Documents and Settings\db2admin>E:
E:>cd temp
E:\temp>cd myproject
E:\temp\MyProject>javac com\test\a.java
E:\temp\MyProject>javac com\test\B.java
E:\temp\MyProject>
[/code]
其中文件目录:E:\temp\MyProject\com\test 下有A.java B.java