我在一个包中有两个java类。我想创建一个类的对象到另一个类但它给出一个错误消息错误:找不到符号。
package pckg;
public class aa{
private String name;
public aa(){} //Constructor of aa class
public void setName(String name){this.name=name;}
public String getName(){return name;}
}
package pckg;
public class bb{
aa obj = new aa(); //This line gives error message
public bb(){} //Constructor of bb class
}
这两个类都在同一文件夹pckg。
错误消息:
D:\Java\mypack>cd..
D:\Java>cd pckg
D:\Java\pckg>set path=d:\java\jdk1.5\bin
D:\Java\pckg>javac aa.java
D:\Java\pckg>javac bb.java
bb.java:3: cannot find symbol
symbol : class aa
location: class pckg.bb
aa obj = new aa(); //This line gives error message
^
bb.java:3: cannot find symbol
symbol : class aa
location: class pckg.bb
aa obj = new aa(); //This line gives error message
^
2 errors
答案 0 :(得分:1)
您的代码没有问题,可能与您的包中的其他类名称冲突。
答案 1 :(得分:1)
D:\Java\ > javac -classpath . pckg\aa.java
D:\Java\ > javac -classpath . pckg\bb.java
如果你没有指定类路径,javac不知道在哪里可以找到已编译的类。
此外,类应该以Java中的大写字母开头。我会避免使用相同的目录来存储源文件和类文件。您最好将源代码放在d:\ Java \ src中,将类放在D:\ Java类中。然后,使用以下命令一次编译所有内容:
D:\Java\ >javac -cp classes -d classes src\pckg\*.java
答案 2 :(得分:0)
尝试
javac -cp . *.java
假设您在'pckg'目录内。
@JB Nizet已经回答了我的想法。