转换源1.7和源< 1.7在Java中

时间:2013-04-23 14:24:48

标签: java eclipse netbeans

我已经制作了一些实用程序,我可以在我正在制作的几个应用程序中使用它们。大多数应用程序支持源1.7,但其中一些不支持(例如,Android应用程序)。

ArrayList<String> list = new ArrayList<>();
String s = "hi";
switch (s) {
    case "hi":

例如,1.7以下的Java版本不支持菱形运算符和切换字符串。

我希望在构建Eclipse或Netbeans项目时,将源代码转换为与1.7以下的源兼容。

我可以实现吗?如果有,怎么样?如果没有,那我该怎么做呢?手动将所有源代码替换为1.6兼容?

2 个答案:

答案 0 :(得分:2)

AFAIK,这是不可能的。

你可以进行交叉编译,但是:

  

javac不接受低于的目标(或编译策略)   它配置为接受的源语言。​​

https://blogs.oracle.com/abuckley/entry/versioning_in_the_java_platform

这篇文章是从2009年开始的,但我怀疑这是用Java SE 7改变的。

解决方案: 使用您要支持的最小Java版本的语法(源代码)。

使用Jenkins之类的持续集成服务器,并为每个要支持的JDK配置一个Job(不需要交叉编译,这可能会在运行时编译但失败,因为您使用了一些旧Java版本中不可用的API。)

另请注意:Oracle的Java SE 6已达到生命周期结束,建议在大多数情况下更新到Java SE 7(例如,当您没有与Oracle的支持合同时)。

答案 1 :(得分:1)

  

我可以实现吗?

理论上是的。

  

如果是,怎么样?

使用Java 7 - &gt; Java 6源代码翻译器。但是,我没有听说过这样的译者的存在......

  

如果没有,那么我该怎么做呢?手动将所有源代码替换为1.6兼容?

这是最实用的方法,除非您能找到其他人已实施的翻译。