今天导入以前用过的项目后,所有的src目录下的java文件全部报错(The declared package does not match the expected package)。
在网上找了好久终于找到了解决方法(http://stackoverflow.com/questions/6997524/the-declared-package-does-not-match-the-expected-package):
Most likely what's wrong is that your project properties point to the wrong place in order for the classpath to work.
In order for Eclipse to separate your projects, you need a directory that contains the project. Then you should have a directory for source and output (although it'll work without it - it's very ugly that way though). Finally, your directories corresponding to your packages should be inside your source folder.
Suppose I'm writing "Bas.java" and it's inside the foo.bar package:
Source might look like this
<common dir>/basproject/src/java/foo/bar/Bas.java
Compiled code might look like this
<common dir>/basproject/bin/classes/foo/bar/Bas.class
Explanation:
<common dir> is the base directory where Eclipse looks for all java projects.
/basproject is where everything associated with the Bas project goes.
/src/java is a place to organize the Java source. I usually like "src/java" because then I have a natural place to put non-java stuff ("src/?") or unit tests ("src/tests").
/foo/bar obviously cooresponds to your package.
I think you get the picture...
Now then, having done that, I next have to set Eclipse up such that the package structure is used correctly.
* Right-click the project name in Eclipse and select Properties.
* Select "Java Build Path" in the left side of the pop-up window.
* Select the "Source" tab in the right side of the pop-up window.
* For my mythical example, I'd want to set the input to "basproject/src/java". Unfortunately it's not possible to edit the input folder shown. Your best bet is to create a new entry without removing the old one so you have a pattern.
* For my mythical example, I'd set the output to "basproject/bin/classes".
* For now, set "Included" to "All" and "Excluded" to none. Later you can use those to fine-tune unit tests and the like.
* Finally, once the structure looks the way you want, delete any entries that don't work.
That should do it.
解决方法:
1、选中项目右击选择Build Path-->再选择Configure Build Path;
2、选择“Source”标签,把“eheal”改为“eheal/src”,ok。
分享到:
相关推荐
The declared package does not match the expected package appendixaStringer.java Thinking in Java/appendixaline 12022 年 11 月 11 日 14:11:20 3870 可以添加 package appendixa 命令来解决。 在运行程序时...
- **包声明不匹配**:如果出现类似`The declared package does not match the expected package appendixa Stringer.java Thinking in Java/appendix`这样的错误,说明源代码中的包结构与实际存放位置不符。...
Spring Boot Shiro Demo项目是一个基于Spring Boot框架与Apache Shiro实现的权限管理示例,旨在帮助开发者快速理解和应用Shiro进行权限控制。相比Spring Security,Shiro通常被认为更易于理解和使用,更适合小型到...
The vision is “To produce the best UNIX-like operating system package possible, with due respect to the original software tools ideology as well as usability, performance and stability.” The ...
_HID does not match the predefined PCI Root Bridge IDs, the _CID list (if present) is now obtained and also checked for an ID match. Implemented additional support for the PCI _ADR execution: up...
* The Shell Extension components does not support C++ Builder 4. For some strange reason the components causes a link error. * There appear to be sporadic problems compiling with C++ Builder 5. ...