我正在Eclipse(Mars)和Windows(8)中构建一个小型Java框架。我的源代码文件位于:
d:\库\标准\ java中
下面存在这样的目录
a) com \ domain \ standard 它包含 com.domain.standard.java 并定义 AClassIn_com_domain_standard
b) com \ domain \ web 它包含 com.domain.web.java 并定义 AClassIn_com_domain_web ,导入com.domain.standard,并定义 SomeClassDerivedFromAClassIn_com_domain_standard
我需要在Eclipse项目中包含这些文件并能够编辑它们,换句话说,我们需要将它们视为项目的一部分。我不想简单地将它们复制到项目中,因为它们将在其他几个项目中使用和共享。
在项目(DynamiC Web项目)中,我有一个源(SomeClass.java) import com.domain.web 并定义 SomeClassDerivedFrom_AClassIn_com_domain_web
我将 d:\ libs \ standard \ java 添加到构建路径作为链接源并具有不同的Inclussion模式
a)如果我包含*,文件将显示在Project Explorer中而不会出现错误
b)如果我将包含模式留空,则会显示文件,但包名称有误(与...不匹配)
在任何一种情况下,源代码 SomeClass.java 都会抱怨 import com.domain.web 无法解析
即使我故意在 d:\ libs \ standard \ java 中的任何包中引发语法错误,也不会标记它们会导致项目中未包含的假设
我检查了How to take package .java files into a Eclipse Project和其他一些页面但未找到正确答案。
¿我的包裹名称是错误还是错误定位? (我是Java新手) ¿我在Eclipse中缺少什么? 或者显而易见的¿有人可以给出解决方案吗?
祝你好运
答案 0 :(得分:0)
第一个错误观念是Java包是Oracle包等公共类的集合。他们不是。每个源文件只能出现一个公共类,而 package 指令用于提示并确保该类所属的包。从第一个出现的第二个是源文件名。它应该与类名(包括大小写)匹配
所以步骤是
a)将 com.domain.standard.java 重命名为 AClassIn_com_domain_standard.java
b)将 com.domain.web.java 重命名为 AClassIn_com_domain_web.java
c)从 AClassIn_com_domain_web.java 中删除import指令。它不再需要(也没有伤害)
d)在 com \ domain \ web 下创建一个名为 SomeClassDerivedFromAClassIn_com_domain_standard.java 的新源代码
e)将 d:\ libs \ standard \ java 作为链接源添加到构建路径,导入模式为空
SomeClassDerivedFrom_AClassIn_com_domain_web.java 正确导入任何包,并标记源代码错误