我意识到这不是100%相关,但我对此很好奇。 在JDK8中,不赞成使用javac参数“source”和“target”,并将在JDK9中将其删除。 作为一名JavaME开发人员,我想知道如何才能够定位到较老的平台。例如,我在开发蓝光时使用的是目标1.3。如果没有“目标”选项,当JDK9出现时,如何编译我的Xlet以用于蓝光?我想,还必须有其他人(尽管我们可以认同的不是很多),但仍需要针对较老的设备。当JDK9不在时我们做什么?如何使用JDK9定位较旧的平台? (目标:1.3)
编辑:它甚至有可能将目标1.3与JDK9?
这很好消息虽然有点令人费解。他们为了降低javac的维护成本而删除“源”和“目标” - 然后引入另一个基本相同的参数? 噢,只要我可以将我的Xlets编译为兼容蓝光的jar文件,那么我很高兴。我想时间会告诉我这个新方法是否做了不同的事情,这使得我的jar文件与蓝光规格不兼容。 –
来自JEP:“默认情况下,javac会针对最新版本的平台API进行编译,因此编译后的程序可能意外地使用了当前版本的平台提供的API,这些程序无法在旧版本的平台上运行,不管传递给-source和-target选项的值如何。这是一个长期的可用性痛点,因为用户期望通过使用这些选项,他们将获得可以在指定平台版本上运行的类文件。“ – Jay
只需要清楚新标志具有非常特定的原因,这是对原始标志的改进,它们不仅仅是改变东西,因为他们觉得它是这样的:) – Jay