I have two classes, Offering and Course. They are both in the same package and the same directory.
Offering.java:
package assignment02; public class Offering implements Comparable<Offering> { private Course course; private int CRN; private int semester; public Offering(Course course, int CRN, int semester) { this.course = course; this.CRN = CRN; this.semester = semester; } public int getNumCredits() { return course.getNumCredits; } public int getCRN() { return CRN; } public int getSemester() { return semester; } public int compareTo(Offering other) { if(other == null) return - 1; return semester - other.semester; } }
Course.java:
package assignment02; public class Course { private String name; private String rubric; private String number; private int numCredits; public Course(String name, String rubric, String number, int numCredits) { this.name = name; this.rubric = rubric; this.number = number; this.numCredits = numCredits; } public String getName() { return name; } public String getRubric() { return rubric; } public String getNumber() { return number; } public int getNumCredits() { return numCredits; } }
When I try to compile Offering, I get the errors:
D:CS 140assignment02>javac Offering.java Offering.java:4: error: cannot find symbol private Course course; ^ symbol: class Course location: class Offering
and
Offering.java:8: error: cannot find symbol public Offering(Course course, int CRN, int semester) { ^ symbol: class Course location: class OfferingOffering.java:8: error: cannot find symbol
I know that the error means the compiler is unable to do anything with ‘Course,’ but I don’t really know why. I also know that it will end up being something incredibly obvious, but I just can’t seem to figure it out. Any help would be really appreciated.
Advertisement
Answer
Change directories to the parent directory of assignment02
. You should then be able to use
javac assignment02Course.java assignment02Offering.java
or
javac assignment02Course.java javac assignment02Offering.java
or even
javac assignment02*.java
The compiler is is looking for the Course
class in the assignment02
package FROM your current directory (so when you’re in the assignment02
directory, it’s effectively trying to look in assignment02/assignment02
, which obviously isn’t right).
While this will correct your current problem you will then get the following error:
assignment02Offering.java:15: cannot find symbol symbol : variable getNumCredits location: class assignment02.Course return course.getNumCredits; ^ 1 error
Which will need to corrected.