Java同包同文件夹类调用报cannot find symbol编译错误求助
问题根因
你执行javac App.java时,javac默认仅检索已编译完成的.class文件、以及当前命令指定编译的源码文件。你没有将同包下的Usuario.java纳入本次编译范围,编译器无法找到Usuario类的定义,因此抛出找不到符号的错误,该问题和你从GitHub克隆代码的操作无关。
修复方案
- 方案1:一次性编译同目录下所有Java源文件
在当前code目录下直接执行以下命令即可:
该命令会同时编译目录下所有Java文件,自动处理类之间的依赖关系,不会再抛出找不到Usuario类的错误。javac *.java - 方案2:按依赖顺序单独编译
先编译被依赖的Usuario类,再编译App类,依次执行如下命令:javac Usuario.java javac App.java
补充注意事项
- 后续运行程序时需要注意包路径规则:两个类都属于
code包,不要在code目录下直接执行java App,需要退到code的上层目录(即你路径中的trabalhoGCS-PUCRS文件夹),执行java code.App才能正常启动程序,否则会抛出主类找不到的错误。 - 你的
Usuario类中还引用了Departamento类,请确保该类的源码也存在于同包目录下,编译时也要将其纳入编译范围,否则后续仍会出现类似的找不到符号错误。
内容的提问来源于stack exchange,提问作者thomasmelison
相关产品推荐
相关产品推荐

