打包java文件

打包java文件,java,inheritance,packaging,abstract,Java,Inheritance,Packaging,Abstract,我正在尝试打包一组java文件,这些文件在打包之前可以很好地编译/运行。添加后 包裹 在第一行中,我得到了以下错误 cannot find symbol symbol: class Person 以下是导致相同错误的简化代码段: 包装人 -Person.java package people; abstract public class Person { // some code } -Female.java package people; public class Female ext

我正在尝试打包一组java文件,这些文件在打包之前可以很好地编译/运行。添加后 包裹 在第一行中,我得到了以下错误

cannot find symbol 
symbol: class Person
以下是导致相同错误的简化代码段: 包装人

-Person.java

package people;
abstract public class Person
{
// some code
} 
-Female.java

package people;
public class Female extends Person
{   
Female(){}
    // some code
}
当你说“packaging”时,你的意思是“在源代码中添加
packaging
declaration”之后吗

如果是这样,我认为您忽略了java包需要反映源文件所在的实际目录。为
包装人员排序
要工作,您需要创建一个名为
people
的目录,并将源文件放在那里

我假设您使用的是
javac
,如果您同时编译两个文件,那么使用
javac*.java
应该可以很好地工作(即使您没有将文件驻留在正确的目录中)。但是,如果您想单独编译它们,则需要从
people
的父目录运行
javac

$ mkdir people
$ mv Person.java Female.java people/
$ javac people/Person.java
$ javac people/Female.java
“找不到符号”通常表示编译器找不到您试图使用的标识符。在这里,它似乎找不到类的人。我假设这个错误是在类中抛出的

您是如何编译源文件的?您是使用Eclipse之类的IDE还是通过命令行编译它?如果您使用的是IDE,它将帮助您更好地识别问题

通过命令行编译时,应确保在类之前编译Person。由于类文件在一个包中,您应该从源代码的根目录编译这些文件

示例- java和Female.java在包“pack”中,这是我编译的方式

D:\Applications\eclipse\eclipse-workspace\Test\src>javac pack\*.java
D:\Applications\eclipse\eclipse-workspace\Test\src>

确保Person类已编译。jar的内容是什么?您真的有一个名为“people”的文件夹放置这些类吗