Какая польза от опции C в jshell
Я прошел введение в руководство по jshell и не смог найти описание / примеры опции -C в jshell.
$jshell --help
-C<flag> Pass <flag> to the compiler.
Use one -C for each compiler flag or flag argument
2 ответа
Вы можете использовать эту опцию, чтобы использовать javac
аргументы командной строки, например, рассмотрим этот кусок кода:
String str = (String)"Hello"
начало jshell
обычно и использование того же результата приведет к:
В то же время вы можете включить ошибки компиляции при предупреждении (-Werror
) и использовать -Xlint
ключ cast
во время компиляции, чтобы предупредить вас о явном приведении, использованном в приведенном выше коде, используя -
jshell -C-Xlint:cast -C-Werror
и тот же оператор приведет к предупреждению и ошибке от компилятора Jshell, как:-
Хотя IMO, это определенно задокументировано гораздо меньше с точки зрения того, что все флаги должны / не должны использоваться при использовании JShell -C
опция командной строки.
Для передачи параметров в javac
компилятор, который jshell
собирается запустить, чтобы скомпилировать операторы в вашем REPL. Один простой пример (чтобы увидеть, какие классы загружены), jshell -C-verbose
, См. Также Стандартные параметры для javac и Дополнительные параметры для javac для дополнительных параметров, которые вы можете указать.