3

我意识到这还不是 100% 相关,但我对此很好奇。在 JDK8 中,不推荐使用 javac 参数“source”和“target”,并将在 JDK9 中删除。作为一名 JavaME 开发人员,我想知道如何才能针对较旧的平台。例如,我在开发蓝光时使用的是 target 1.3。如果没有“目标”选项,当 JDK9 出局时,如何为蓝光编译 Xlet?我想肯定还有其他人(尽管我们同意不是很多)仍然需要针对旧设备。JDK9出来了我们怎么办?

编辑:甚至可以使用 JDK9 来定位 1.3 吗?

4

2 回答 2

5

为了回答“如何在没有目标选项的情况下进行编译”的问题,新的 -release 标志是 -source 和 -target 的更安全和更可靠的替代方案。有关详细信息,请参阅JEP-247 。您将使用 -release 以与使用 -source 和 -target 相同的方式定位旧平台。

“JDK9 中将删除源和目标”这句话有点正确但并不完全正确:-source 和 -target 标志本身并未被删除,但它们用于针对特定旧版本的用途已被弃用。来自JEP-182:“在 JDK 9 中,将删除对 1.5 或更早版本的源或目标的支持。”

要回答“JDK9 甚至可以针对 1.3 吗?”这个问题。答案是关于 -release 标志,JDK9 不会编译到目标 1.3。

从 javac -帮助:

--release <release>
      Compile for a specific VM version. Supported targets: 6, 7, 8, 9

您最好的选择是使用旧版本的 JDK 进行编译。如果您需要以 1.3 为目标,那么无论如何都没有太多理由使用 Java 9 编译器。

于 2016-09-24T00:33:17.273 回答
1

我不知道-source并且-target在 Java 8 中被弃用并在 Java 9 中被删除 - 早期访问版本(至少9-b131)仍然有它们。你有那个来源吗?

我所知道的该领域的唯一变化是JEP 247,它引入了-release,这是其他两个的捷径。

于 2016-09-22T12:41:19.853 回答