如何使用JDK9定位旧平台? (目标:1.3)
我意识到这还不是100%相关的,但我对此很好奇。 在JDK8中,javac参数“source”和“target”已弃用,并且将在JDK9中删除。 作为一名JavaME开发人员,我想知道如何才能够定位老版本的平台。 例如,我在开发蓝光时使用的是目标1.3。 如果没有“目标”选项,当JDK9出现时,如何编译我的Xlet以用于蓝光? 我想,还必须有其他人(尽管我们可以认同的不是很多),但仍需要针对较老的设备。 当JDK9不在时我们做什么?
编辑:甚至有可能以JDK9为目标1.3?
要回答“如何在没有目标选项的情况下编译”这个问题,新的-release标志是-source和-target的一个更安全,更可靠的替代方案。 有关更多详细信息,请参阅JEP-247。 您将以-source和-target相同的方式将目标锁定在较旧的平台上。
“源代码和目标将在JDK9中被删除”这个陈述有点真实,但并不完全相同:-source和-target标志本身不会被删除,但是它们用于定位特定旧版本的用法已被弃用。 从JEP-182开始:“在JDK 9中,对1.5或更低版本的源或目标的支持将被删除。”
要回答这个问题,“是否有可能将JDK9作为目标1.3?” 答案是关于-release标志,JDK9不会编译为1.3。
来自javac -help:
--release <release>
Compile for a specific VM version. Supported targets: 6, 7, 8, 9
您最好的选择是使用旧版本的JDK进行编译。 如果您需要以1.3为目标,那么无论如何都没有太多理由使用Java 9编译器。
我不知道-source
和-target
在Java 8中被弃用,并在Java 9中被移除 - 早期的访问版本(至少9-b131
)仍然有它们。 你有这方面的来源吗?
我所知道的那个领域唯一的变化是JEP 247,它引入了-release
,这对另外两个来说是一种捷径。