在jshell中使用C选项有什么用

时间:2017-10-14 05:43:23

标签: java java-9 jshell

我已经浏览了introduction to jshell guide,无法在jshell中找到有关-C选项的说明/示例。

$jshell --help
 -C<flag>              Pass <flag> to the compiler.
                        Use one -C for each compiler flag or flag argument

2 个答案:

答案 0 :(得分:4)

您可以使用此选项来使用javac command line arguments,例如考虑以下代码:

String str = (String)"Hello"

正常启动jshell并使用相同的结果:

enter image description here

同时您可以在警告(-Werror)上启用编译器错误,并在编译时使用-Xlintcast来警告您使用的显式强制转换上面的代码使用 -

jshell -C-Xlint:cast -C-Werror

并且相同的语句会导致Jshell编译器发出警告和错误: -

enter image description here

虽然是IMO,但就使用JShell -C命令行选项时所有标志应该/不应该使用的内容来说,这肯定记录得更少。

答案 1 :(得分:1)

将选项传递给javac编译器,jshell将运行以编译REPL中的语句。一个简单的例子(看看加载了哪些类),jshell -C-verbose。另请参阅Standard Options for javacExtra Options for javac以了解您可能指定的其他选项。