我已经制作了一些实用程序,我可以在我正在制作的几个应用程序中使用它们。大多数应用程序支持源1.7,但其中一些不支持(例如,Android应用程序)。
ArrayList<String> list = new ArrayList<>();
String s = "hi";
switch (s) {
case "hi":
例如,1.7以下的Java版本不支持菱形运算符和切换字符串。
我希望在构建Eclipse或Netbeans项目时,将源代码转换为与1.7以下的源兼容。
我可以实现吗?如果有,怎么样?如果没有,那我该怎么做呢?手动将所有源代码替换为1.6兼容?
答案 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兼容?
这是最实用的方法,除非您能找到其他人已实施的翻译。