Java 在同一个包中找不到符号

Java 在同一个包中找不到符号,java,compilation,package,symbols,Java,Compilation,Package,Symbols,我有两个公共班,员工和工资在同一个包里。Employee是父类,Salary是子类。 当我使用-d标志编译Employee类时,代码编译得很好,并且根据包名生成适当的目录结构。 但是,当我尝试编译Salary类时,会出现以下错误: Salary.java:2: cannot find symbol symbol: class Employee public class Salary extends Employee{ 1 error 这是我的密码: Employee.java Salary.

我有两个公共班,员工和工资在同一个包里。Employee是父类,Salary是子类。 当我使用-d标志编译Employee类时,代码编译得很好,并且根据包名生成适当的目录结构。 但是,当我尝试编译Salary类时,会出现以下错误:

Salary.java:2: cannot find symbol
symbol: class Employee
public class Salary extends Employee{

1 error
这是我的密码: Employee.java

Salary.java


如果我从这两个文件中删除了包声明,那么它将编译而没有任何错误。

如果您没有使用任何IDE,请在编译Salary时使用-cp选项来指定在何处查找Employee类文件。

您的私有int-Salary实际上应该是小写的s,Salary@mjr:我不认为这会引起任何问题。@Pranethnilangapeiris这与提问者的问题无关,但使用大写字母s肯定是个坏主意,因为它非常令人困惑。我是java新手,目前还不太了解约定……我很快就会开始学习……谢谢你提供的信息。但我不认为这会造成任何问题。我没有发现我为什么要尝试这个的错误。你确定你的文件在正确的目录/文件夹中,并且你在编译时在正确的目录中吗?我需要使用-cp选项指定员工类文件的整个路径还是直接到测试目录???指定员工类文件所在的文件夹路径。它起作用了!!!!我使用了javac-d test-cp/test Salary.java谢谢您的帮助:
package com.alok.Manage;

public class Employee{
  private int eno;
  private String name;

  Employee()
  {
      this(0,"");

  }
  Employee(int n,String nm)
  {
     this.eno=n;
     this.name=nm;
  }

  public int getEno()
  {
     return this.eno;
  }
  public String getName()
  {
     return this.name;
  }
}
package com.alok.Manage;
public class Salary extends Employee{

   private int Salary;

   public int getSal()
   {
     return this.Salary;
   }

   public void setsal(int s)
   {
     this.Salary=s;
   }
}