Я прошел через введение в руководство по jshell и не смог найти описание/примеры параметра -C в jshell.
$jshell --help
-C<flag> Pass <flag> to the compiler.
Use one -C for each compiler flag or flag argument
Я прошел через введение в руководство по jshell и не смог найти описание/примеры параметра -C в jshell.
$jshell --help
-C<flag> Pass <flag> to the compiler.
Use one -C for each compiler flag or flag argument
Вы можете использовать этот параметр, чтобы использовать 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 для дополнительных параметров, которые вы можете указать.
jshell -C-version
, и это привело к java.lang.IllegalArgumentException: invalid flag: -version
- person Naman; 14.10.2017
-version
печатает версию и завершает работу; так что поддерживать его не имеет особого смысла. Я просто пытался ответить на вопрос о цели опции -C
.
- person Elliott Frisch; 14.10.2017