Eclipse自定义包A中Java文件运行报Unresolved compilation problem错误咨询
报错根本原因
这个Unresolved compilation problem报错是Eclipse特有的现象:代码存在编译错误时Eclipse仍允许启动运行,执行到有问题的代码段就会抛出该异常。放到默认包正常、包A下运行失败的常见原因有3个:
- 源文件缺少包声明
Java规范要求,位于命名包下的源文件第一行必须声明所属包,也就是你的Lab1_2.java第一行需要写package A;。如果没写这行,文件默认属于无名默认包,放到A包的目录下就会出现包路径和声明不匹配的编译错误,移到默认包不需要写package声明自然不会触发该问题。 - 引用了默认包的类
JDK 1.4及之后的版本,不允许命名包(比如你创建的A包)的代码导入或引用默认包下的类。如果你Lab1_2.java里用到的其他Java文件都放在默认包,放到A包下运行时就会找不到对应类触发编译错误;移到默认包后同包下的类不需要导入即可直接调用,就能正常运行。 - 项目构建路径配置错误
检查你创建的A包是否位于项目的源码根目录(一般是src文件夹)下,如果A包放错了路径,Eclipse不会把它识别为Java源码包进行编译,也会触发该报错。
对应解决方法
- 打开
Lab1_2.java,确认第一行是否添加了package A;声明,缺失的话补全后重新运行。 - 如果已经加了正确的包声明,就把你导入的其他公用Java文件也移动到A包内,或者给这些公用文件也加上对应包声明后在
Lab1_2.java里用import语句导入。 - 右键项目名→选择
Build Path→Configure Build Path,在Source标签下确认存放A包的文件夹已经被标记为源码目录,输出路径配置正确。
内容的提问来源于stack exchange,提问作者Veterans
相关产品推荐
相关产品推荐

