让我们在使用 Java 的软件包中说我们正在使用2个文件。 第一个说 StudentModel.java ,第二个说 StudentView.java 。
studentModel.java 的基本结构是:
package student;
public class StudentModel{
private String name;// name of student
private int roll; // roll of student
private String date;
private int marks[]=new int [6];
private String sub[]=new String[6];
private int total;
/*to get the details of a student*/
public int getRoll();
public String getDate();
public String getName();
public void setDate(String dat);
public void setName(String nam);
public void setRoll(int roll);
public void setSubjectAndMarks(int [] mar,String [] subject){
for(int i =0;i<6;i++) {
marks[i]=mar[i];
sub[i]=subject[i];
}
}
public void displaySubjectAndMarks(){
for(int y=0;y<5;y++) {
System.out.println(sub[y]+"\t \t\t "+marks[y]);
}
}
public int getTotal();
}
StudentView.java 的基本结构是:
package student;
import java.util.*;
public class StudentView {
/*displaying the marksheet of a particular student*/
public void display(StudentModel Obj) {
System.out.println("-------------------MARKSHEET---------------");
System.out.println("\nName:"+Obj.getName()+"\tDate : "+Obj.getDate());
System.out.println("------------------------------------");
System.out.println("ROLL NO :\t\t" +Obj.getRoll());
System.out.println("-------------------------------");
System.out.println("SUBJECT \t\t MARKS");
Obj.displaySubjectAndMarks();
System.out.println("TOTAL"+Obj.getTotal());
}
}
然后我首先编译了 StudentModel.java ,没有给出任何错误。然后我编译了 StudentView.java ,这引发了这个错误:
StudentView.java:18: error: cannot find symbol
public void display(StudentModel Obj) {
symbol: class StudentModel
location: class StudentView
1 error
我正在从终端编译,即使添加了类路径,我也收到了这个错误:
答案 0 :(得分:1)
我自己不经常使用java命令行,但我能够重现问题。
为我修复的是一次传递所有源文件,如:
javac StudentModel.java StudentView.java
可能有一个更好的解决方案,但我希望这在平均时间有所帮助。
提示:如果您有make
,则可以使用它进行编译,因此您无需一直输入所有内容。
更简单的解决方案是使用IDE tbh。
修改强>
我很好奇并查看了文档(link)其中注意到:“对于命名包中的.class文件,类路径以包含”root“包的目录结束(完整包名中的第一个包。)“
您的类位于名为student
的包中,因此从类路径根目录开始,编译器将查找名为“student”的文件夹,在其中查找student
中的.class文件封装