Перейти к содержимому

Jshell java что такое

  • автор:

Прототип Java с помощью JShell | Java для начинающих

Главный архитектор Microsoft для Java и Чемпион Java Ed Burns представляет средство Оболочки Java (JShell), интерактивное средство командной строки для работы с кодом Java.

Рекомендуемые ресурсы
  • Ознакомьтесь с остальными выпусками серии «Java для начинающих»
  • Примеры и вспомогательные материалы
  • Рекомендуемые модули Microsoft Learn

Главный архитектор Microsoft для Java и Чемпион Java Ed Burns представляет средство Оболочки Java (JShell), интерактивное средство командной строки для работы с кодом Java.

Рекомендуемые ресурсы
  • Ознакомьтесь с остальными выпусками серии «Java для начинающих»
  • Примеры и вспомогательные материалы
  • Рекомендуемые модули Microsoft Learn

JShell за пять минут

Этот пост основан на моем посте « My Top Java 9 Features», в котором более подробно рассматриваются эти функции. Здесь мы покажем вам, как вы можете изучить jshell за пять минут и улучшить свой опыт разработки на Java 9.

Начиная

Предполагая, что вы загрузили и установили Java 9, вы можете запустить оболочку, набрав:

Или если вы хотите многословно –

C:\jdk9TestGround>jshell -v
| Welcome to JShell — Version 9
| For an introduction type: /help intro

переменные

Просто введите переменную, с или без точки с запятой –

jshell> int i = 1 ;
| created variable i : int

Неназначенные значения автоматически присваиваются переменной, начинающейся с $

Jshell java что такое

The Java Shell tool (JShell) is an interactive tool for learning the Java programming language and prototyping Java code. It was introduced in JDK 9. JShell is a Read-Evaluate-Print Loop tool (REPL), which evaluates declarations, statements, and expressions as they are entered and immediately shows the results. The tool is run from the command line.

  • Why Use JShell?
  • Starting and Stopping JShell

For reference information for this tool, see The jshell Command in Java Development Kit Tool Specifications .

Why Use JShell?

Using JShell, you can enter program elements one at a time, immediately see the result, and make adjustments as needed.

Java program development typically involves the following process:

  • Write a complete program.
  • Compile it and fix any errors.
  • Run the program.
  • Figure out what is wrong with it.
  • Edit it.
  • Repeat the process.

JShell helps you try out code and easily explore options as you develop your program. You can test individual statements, try out different variations of a method, and experiment with unfamiliar APIs within a JShell session. JShell doesn’t replace an IDE. As you develop your program, paste code into JShell to try it out, and then paste working code from JShell into your program editor or IDE.

Starting and Stopping JShell

JShell was introduced in JDK 9. To start JShell, enter the jshell command on the command line.

JDK 9 or higher must be installed on your system. If your path doesn’t include the bin directory, for example java-home /jdk-16.0.1/bin , then start the tool from within that directory.

The following example shows the command and the response from JShell. Text that you enter is shown in bold:

% jshell | Welcome to JShell -- Version 17.0.1 | For an introduction type: /help intro jshell>

The examples in this tutorial use the verbose mode. Verbose mode is recommended as you work through this tutorial so that what you see matches the examples. When you are more familiar with the tool, you might prefer to run in normal or a more concise mode.

To start JShell in verbose mode, use the -v option:

% jshell -v

To exit JShell, enter /exit :

jshell> /exit | Goodbye

Ранний доступ к Java 9: ​​практическая сессия с JShell – Java REPL

В прошлые выходные я наконец-то нашел время для того, чтобы испачкать руки в версии Java 9 с ранним доступом. Первой остановкой была JShell, которая также называется Project Kulla; причина, которая заставила меня набраться смелости, чтобы в первую очередь попробовать версию Java с ранним доступом.

Это правильно. Официальная дата выпуска Java 9 в настоящее время назначена на сентябрь 2016 года, но ранняя версия доступа уже имеет полнофункциональную версию JShell. Он все еще находится в стадии разработки и имеет несколько причуд, но это никогда не останавливало нас раньше.

Интересный факт # 1: Project Kulla — это внутреннее название команды, разрабатывающей JShell. Кулла — это имя бога строителя из месопотамской мифологии, который был изгнан после завершения строительных работ. Намекать на использование Kulla в качестве инструмента обучения?

Так что же это за штука JShell?

JShell / Project Kulla — это первый официальный Java REPL (Read-Eval-Print-Loop), инструмент командной строки, который позволяет вам запускать операторы Java самостоятельно, без необходимости заключать их в классы или методы. В некотором роде похож на интерпретатор Python или на другие языки JVM, которые изначально поддерживают REPL, такие как Scala и Groovy. Среди будущих функций Java 9 это определенно одна из наиболее интересных. Чтобы ознакомиться с более интересными функциями (помимо Project Jigsaw!), Которые появятся в ближайшем к вам JDK, вы можете прочитать предыдущий наш пост о пяти лучших функциях Java 9, которые изменят ваш код . До сих пор, если вы хотите REPL в Java, вы могли бы использовать альтернативы, такие как repl.it с поддержкой нескольких языков или неофициальный проект Java REPL . Вместе с Java 9 REPL включается прямо в JDK вместе с пакетом langtools.

Интересный факт # 2: Еще один проект OpenJDK с мифологическим названием — проект Valhalla; нацеленность на Java 9 и работа над такими функциями, как типы значений и расширенные обобщения. Определенно задира.

Но хватит, давайте запустим его и посмотрим, что он может сделать. В следующем коротком перекодировании терминала мы проведем быстрый тестовый запуск с JShell v0.61 (существует известная проблема с OSX 10.10.3, когда приглашение смешивается с некоторыми результатами, поэтому, пожалуйста, не обращайте на это внимания, скорее всего скоро исправят)

Разжигать и играть с JShell

Обзор того, что мы только что увидели: некоторые из самых интересных функций JShell

** [8/7/2015] Обновление: отредактировано с примечаниями Брайана Гетца , архитектора языка Java в Oracle

1. Точка с запятой необязательна для простых выражений

Привет, JShell! Благодаря быстрой и гибкой природе REPL мы можем немного расслабиться и забыть о добавлении точек с запятой в конце наших утверждений:

Нет, здесь нет точки с запятой

Нет, здесь нет точки с запятой

На самом деле это был популярный ответ на опрос, который мы провели по поводу будущих функций Java. Конечно, точка с запятой здесь, чтобы остаться, или как терминаторы или разделители. REPL позволяет вводить пустые выражения и операторы по одному, поэтому точки с запятой становятся необязательными для случая использования терминатора в Jshell.

2. REPL сеть

С JShell мы не ограничены нашей машиной и имеем сетевой доступ, это открывает некоторые интересные возможности. Например, подумайте об использовании его в качестве терминала для связи с вашим сервером, удаленного подключения к нему и управления некоторыми параметрами извне. Другим вариантом будет запрос вашей базы данных, и возможности здесь действительно безграничны.

Простой пример, показывающий получение HTTP-заголовка с помощью JShell

Простой пример, показывающий получение HTTP-заголовка с помощью JShell

3. Помогите! Сохранение и загрузка рабочих мест

Помимо запуска и оценки операторов Java, JShell поддерживает ряд команд, которые помогут вам передвигаться и перемещаться по среде REPL. Вы можете сохранить и загрузить рабочие пространства (что делает Java похожим на язык сценариев), а затем вернуться в командную строку после того, как весь код был выполнен (именно здесь вы можете увидеть ошибку OS X, о которой я упоминал в записи терминала) ,

Другие полезные команды перечисляют все текущие доступные переменные и методы, просматривают всю историю ваших команд и перечисляют весь код, который вы написали до сих пор (который иногда все еще ведет себя немного странно).

Вот полный список доступных на данный момент команд:

JShell / помощь

4. Нет проверенных исключений

Если вы беспокоитесь о проверенных исключениях, разрушающих ваш опыт REPL — не бойтесь больше, JShell переносит их в фоновый режим. В следующем примере то, что заставило бы нас поймать IOException, уходит незамеченным. Здесь мы читаем и распечатываем файл без обработки IOExceptions:

jshell проверено

Один из случаев, когда мы видели всплывающее окно с проверенными исключениями, — это когда мы пытались запустить поток и использовали в нем Thread.sleep (). Поскольку это целый метод, а не один простой оператор, он должен быть полностью допустимым Java:

jshell-прерываться

Перейдем к еще нескольким функциям, которые не попали в запись терминала:

5. Java-выражения

Еще одна вещь, связанная с терминалом JShell, заключается в том, что он также может оценивать выражения Java при включении. Конкатенация строк, вызовы методов, арифметика, что угодно. В основном все, что вы могли бы обернуть внутри System.out.println (/ * выражение здесь * /). Как вы, возможно, уже заметили в других оценках, он немедленно помещает результат в собственную переменную и выводит его:

jshell арифметику

6. Прямая ссылка

JShell имеет довольно изящную поддержку прямых ссылок, поэтому вы можете определять функции, которые ссылаются на другие методы или переменные, которые будут определены позже. Вот пример из учебника по REPL от AdoptOpenJDK:

jshell вперед-исх

7. JShell API

Помимо использования в качестве автономного инструмента JDK, JShell также предоставит API, который открывает все его функциональные возможности для внешнего использования. Это означает, что внешние инструменты могут подключаться и использовать возможности JShell, и внезапно открываются некоторые интересные возможности, такие как включение их в состав IDE, таких как Eclipse, IntelliJ или Netbeans. Более креативные варианты использования API могут включать инструменты, позволяющие расширить возможности статического анализа, автоматизировать тестирование или даже подключиться к действующим JVM.

8. Изменение определений на ходу

Вы можете повторно объявить переменные, методы и классы, не беспокоясь об исходных объявлениях. Как только вы это сделаете, вам будет выдано сообщение с сообщением о том, что произошло, но кроме этого — это обычный бизнес.

Бонус: все, что вам нужно, это любовь

Если вы покопаетесь в папке / repl / samples , вы найдете этот симпатичный пример, который привлечет вас 3 маленьких сердца с помощью Swing:

Java <3 REPL

Как начать самостоятельно?

Чтобы начать, ознакомьтесь с инструкциями по принятию OpenJDK: Getting Started Kit от Лондонского сообщества Java (LJC). Вот краткое изложение шагов, которые помогут вам начать, особенно если вы никогда раньше не играли с ранними версиями JDK:

  1. Установите Java 9 раннего доступа JDK
  2. Постройте ветку Кулла-Дев:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *