打包java文件
我正在尝试打包一组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
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”的文件夹放置这些类吗