Java me 如何使用JDK9瞄准较旧的平台?(目标:1.3)

Java me 如何使用JDK9瞄准较旧的平台?(目标:1.3),java-me,java-9,xlet,blu-ray,Java Me,Java 9,Xlet,Blu Ray,我意识到这还不是100%相关,但我对此非常好奇。 在JDK8中,javac参数“source”和“target”被弃用,并将在JDK9中删除。 作为一名JavaME开发人员,我想知道如何才能针对较旧的平台。例如,我在为蓝光显影时使用的是Target1.3。如果没有“目标”选项,当JDK9退出时,如何为蓝光编译XLET?我想肯定还有其他人(尽管我们同意的不多)仍然需要瞄准较旧的设备。当JDK9退出时,我们该怎么办 编辑:甚至可以用JDK9将1.3作为目标吗?我不知道-source和-target在

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


编辑:甚至可以用JDK9将1.3作为目标吗?

我不知道
-source
-target
在Java 8中被弃用,在Java 9中被删除-早期的access构建(至少
9-b131
)仍然有它们。你有消息来源吗

据我所知,该领域唯一的变化是引入了
-release
,这是另外两个领域的一种捷径。

为了回答“如何在没有目标选项的情况下编译”,新的-release标志是-source和-target的更安全、更可靠的替代方案。有关更多详细信息,请参阅。您将使用-release以旧平台为目标,就像使用-source和-target一样

语句“source和target将在JDK9中删除”有点正确,但不完全正确:没有删除-source和-target标志本身,但不推荐将它们用于特定的旧版本。From:“在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
——发布
为特定VM版本编译。支持的目标:6、7、8、9

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

这是个好消息,尽管有点令人费解。他们删除了“源”和“目标”以降低javac的维护成本,然后只引入另一个基本相同的参数?哦,好吧,只要我能把我的Xlet编译成一个蓝光兼容的jar文件,我就很高兴了。我想时间会告诉我这种新方法是否有不同之处,这使得我的jar文件与蓝光规格不兼容。来自JEP:“默认情况下,javac根据平台api的最新版本进行编译。因此,编译后的程序可能会意外地使用仅在平台当前版本中可用的API。无论传递给-source和-target选项的值如何,这些程序都不能在较旧版本的平台上运行。这是一个长期的可用性难点,因为用户希望通过使用这些选项,他们将获得可以在指定平台版本上运行的类文件。“我只是想澄清,新国旗有一个非常具体的原因,它是对原有国旗的改进。他们不只是因为喜欢而改变内容:)JEP没有使用“替换”这个词,这使得这个答案具有误导性,因为它似乎证实了问题的错误说法,即他们不赞成。我对答案进行了编辑,以反映您问题的变化。您应该为此提出一个新问题,重点是中描述的“一加三返回”规则。如果新的“release”标志让我回到1.3,则没有理由相信它会让您返回到
-source
-target
不支持的任何内容。根据1.3,javac 9将不支持。