使用javac编译两个Java自定义包时无法访问类文件报错如何解决
错误产生原因
该报错核心是编译器无法将路径下的mygoal1.java文件和你要导入的package1.mygoal1类匹配上,常见触发原因有两个:
part3/package1/mygoal1.java文件开头没有声明对应的包语句。Java不会自动根据文件夹路径给类分配包,必须手动在类文件第一行写package package1;才会让该类归属到package1包下,未声明的话类默认属于无名包,自然找不到package1.mygoal1。- 类名或包名大小写不匹配。Java大小写敏感,如果包声明写的是
Package1(首字母大写)、或者类名写的是MyGoal1和文件名mygoal1.java不匹配,也会触发该报错。
解决方法
- 第一步:打开
part3/package1/mygoal1.java,在文件第一行添加包声明,确保和文件夹名完全一致:
package package1;
- 第二步:检查该文件内的公共类名,必须和文件名完全一致,示例正确写法:
package package1; public class mygoal1 { // 类逻辑 }
- 第三步:确认修改保存后,重新执行你的编译命令即可正常编译:
javac -sourcepath "./part3" "./part3/package2/program2.java" -d "./target"
内容的提问来源于stack exchange,提问作者pmelo
相关产品推荐
相关产品推荐

