【问题标题】:Two different source folders with different output folders in eclipse having same type java source files;not getting compiledeclipse中具有不同输出文件夹的两个不同源文件夹具有相同类型的java源文件;未编译
【发布时间】:2010-12-05 14:31:32
【问题描述】:

我正在尝试在 Eclipse SDK 中构建一个非常简单的 java 项目 版本:3.6.1 版本号: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 屏幕截图:-

我在谷歌搜索时也找到了this

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


编辑:

实际上,我有一个项目,我正在不断增强它,并希望将所有版本保持在一起。我从here 用谷歌搜索了这种方法。欢迎任何针对此或更好方法的 hack。

【问题讨论】:

  • 当您有两个定义同一个类的源文件夹时,您期望会发生什么?

标签: java eclipse compiler-errors packaging


【解决方案1】:

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

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

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    最简单的解决方法是为每个源文件夹指定不同的包名称。如果您想保留版本,您可以执行以下操作之一:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-17
      • 1970-01-01
      • 2015-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多