在eclipse中具有不同输出文件夹的两个不同的源文件夹具有相同类型的Java源文件;没有被编译

时间:2010-12-05 14:31:32

标签: java eclipse compiler-errors packaging

我正在尝试在 Eclipse SDK中构建一个非常简单的java项目 版本:3.6.1 构建ID:M20100909-0800

有两个不同的源文件夹,其中不同的输出文件夹具有相同的java源文件。 但是,在项目中获得CTE。

以下是项目的.classpath文件: -

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" output="myBin" path="mySrc"/>
    <classpathentry kind="src" output="yourBin" path="yourSrc"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

另请参阅以下Project Explorer截图: -

alt text

我在google搜索时也找到this

非常感谢任何解决方法。 谢谢。的;)


编辑:

实际上,我有一个项目,我不断加强并希望将所有版本保持在一起。我从here用Google搜索了这种方法。欢迎任何破解这种或更好的方法。

2 个答案:

答案 0 :(得分:2)

Eclipse源文件夹中不能有两个相同FQCN(完全限定类名)的类。

但是,您可以在CLASSPATH上使用相同FQCN的两个类。一个在源文件夹中,另一个在任何依赖项中(例如JAR文件)。然后由类加载器找到的第一个加载并由JVM( Java虚拟机)使用。所以这里CLASSPATH的顺序很重要。

希望这有帮助。

答案 1 :(得分:0)

最简单的解决方法是为每个源文件夹提供不同的包名称。如果你想保留版本,你可以做以下其中一个:

  1. 使用源代码管理。
  2. 使用历史中的eclipse。
  3. 将整个项目复制到具有版本名称的项目,而不仅仅是源文件夹。
  4. 将源文件夹复制到不是源文件夹的目录。