如何在JShell中设置Java版本?

时间:2018-10-16 18:56:33

标签: java jshell

我正在使用JShell from JDK 11对泛型进行一些实验。

我想将解释后的Java版本设置为版本8。这将使我具有与Java Language Specification 8中定义的类型推断行为相同的行为。

我该怎么办?

2 个答案:

答案 0 :(得分:1)

您要应用的标志是:

"-source 8"

将其传递给JShell背后的编译器的方法是:

"jshell -C "-source 11"

...但是它不起作用。我刚刚尝试过,Jshell未能解析此异常。情况并非如此,因此我调查了引发错误的Arguments类的代码。事实证明,javac选项分为不同的类别,并且通过JShell仅允许{strong> BASIC命令(com.sun.tools.javac.main.Option.java :1308)。

设置源标志不属于该组,因此验证器会将其丢弃,并且将不应用设置。

如果要验证这一点,可以尝试将BASIC类型的param传递给javac,例如“ -p”,您将看到它已正确传递。

答案 1 :(得分:0)

不可能,JShell工具使用Java 9功能的Java平台模块系统(JPMS)。