【问题标题】:File hierarchy vs Package hierarchy in IDE(Eclipse)IDE(Eclipse)中的文件层次结构与包层次结构
【发布时间】:2012-01-09 13:59:07
【问题描述】:

假设我有这样的课程:

com.stackoverflow.hierarchy;

A 类{}

位于 ~/MyProject/src/com/hierarchy

是否可以避免 IDE 中 A 类的编译错误(例如 *声明的包“com.stackoverflow.hierarchy”与预期的包“com.hierarchy”不匹配*)

我尝试在 Java 构建路径属性项目属性中搜索一些答案。但我失败了。也许有人可以帮助这个员工?

【问题讨论】:

  • 你能解释一下为什么你想这样做吗?
  • @Gray 好吧...我已经动态开发了从 .NET 移植到 Java 的项目。因此,Java 最佳实践出现了一些问题。项目用 Ant 编译得很好。但我想通过 Eclipse 运行我的测试,所以我也需要在 Eclipse 中编译它。
  • 有什么理由不让 Eclipse 为您更正软件包?将它们放入正确的目录层次结构是否有问题?
  • @Gray >有什么理由不让 Eclipse 为您更正软件包吗?将它们放入正确的目录层次结构是否有问题
  • 如果您允许,Eclipse 可以更正相关文件的包,如果您安装了 subclipse,它们也会在 SVN 中移动。

标签: java eclipse package packages hierarchy


【解决方案1】:

这是 Java 问题,但不是 eclipse 问题。

From 7.2.1 Storing Packages in a File System in The Java Language Specification:

在这个简单的包组织下,一个实现 Java 平台会通过以下方式将包名转换为路径名 连接包名的组成部分,放置一个文件名 相邻组件之间的分隔符(目录指示符)。

例如,如果在 UNIX 系统上使用这个简单的组织, 其中文件名分隔符为/,包名:

jag.scrabble.board

会转化为目录名:

jag/scrabble/board

和:

com.sun.sunsoft.DOE

将转换为目录名称:

com/sun/sunsoft/DOE

你的包名应该和文件路径名匹配。所以你应该把Class A的包从package com.stackoverflow.hierarchy改成package com.hierarchy

或将Class A 放入文件夹/MyProject/src/com/stackoverflow/hierarchy

【讨论】:

  • 是的,这很明显。我的回答是关于不同的事情。我问的是智胜 Eclipse IDE
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多