0

如何设置要为 JAVA 6 和 JAVA 7 JRE 开发的 Eclipse 执行环境和项目?

我之所以这样问,是因为并非所有为在 JAVA 6 上运行而开发的程序都将在 JAVA 7 中运行。

例如在这种情况下:

我需要使用一个 JAVA API interface,这个接口的 JAVA 6 版本是:

public interface Foo {
    int getValue();
}

但是,这个的 JAVA 7 版本interface是:

public interface Foo {
    int getValue();
    int getNewValue();
}

现在,如果我这样编写程序:

public class FooImp implements Foo {

    public static void main( String[] args ) {
    }

    public int getValue() {
        return 1;
    }
}

这将在 JRE 6 上运行良好。但是,如果我在 JRE 7 上运行它,它将无法正常工作,因为Foo接口需要getNewValue实现该操作。

在这种情况下,使用 Eclipse 对我的程序进行编码并确保它能够在 JRE 6 和 7 上运行的最佳解决方案是什么?我应该如何配置执行环境并运行测试?

注意:此时,我正在这样工作:

  1. 我在 JDK 6 上编写我的程序,以确保我没有使用 JDK 6 中不存在的任何 JDK 7 资源。
  2. 我在 JRE 6 上运行了第一个测试。
  3. 然后,它导出我的项目并在 JRE 7 上运行它。

注2:专门搜索一下这个java.sql.ResultSet问题,发现了这个问题: Java 6 Source back-compatibility and SQL

现在我看到,这个问题在 JDBC 中很常见,源代码的兼容性随着频率的降低而被破坏。所以,我觉得这里没什么好讨论的。感谢大家的回答和努力。

4

1 回答 1

0

我不知道是否有一种优雅的方法可以做到这一点,但以下方法可以工作。

  1. 将您的代码库重新组织和重构为两部分:

    • 需要在您的代码库的 Java 6 版本中工作的部分,以及
    • 特定于 Java 7 版本的其他代码。(这可能涉及使用 Java 6 和 Java 7 特定的实现类创建一些 Java 接口。)
  2. 将 Java 6 和 Java 7 代码放入单独的 Eclipse Java 项目中。设置 Eclipse 项目首选项,为每个项目选择适当的 Java 合规级别;例如“项目 > 属性 > Java 编译器” ...

  3. 如果您还没有这样做,请进一步重构代码,以便核心动态加载 Java 6 和 Java 7 特定类;例如使用Class.forName(...)

这应该允许您在同一个 Eclipse 工作区中开发 Java 6 和 Java 7 部分。

您还应该能够使用“Run > Run Configurations”和/或“Run > Debug Configurations”为 Java 6 和 Java 7 创建启动器以进行 Eclipse 内测试。


注意:我自己没有尝试过。请让我们知道它是否有效。

于 2013-05-13T13:51:09.843 回答