Java 9 JShell (Project REPL) Часть 2
Данная статья написана командой Vertex Academy. Это одна из статей из нашего Учебника по Java 9. Надеемся, что данная статья Вам будет полезна. Приятного прочтения!
1. Введение
В предыдущей статье мы рассмотрели основы работы с JShell, узнали как создавать переменные, методы и классы. Сегодня мы рассмотрим конфигурацию и команды JShell, импорты классов и библиотек.
2. Конфигурации
JShell имеет несколько стартовых конфигураций. При запуске можно указать режим обратной связи (feedback mode) который определяет информативность описания выполненных команд. Он имеет четыре режима: silent, concise, normal и verbose. Передаются они с помощью флага --feedback
1 2 3 4 5 |
jshell --feedback silent -> 2*3-1 -> $1 -> System.out.println($1) 5 |
Как видим, режим silent выключает все подсказки, в отличии от verbose
1 2 3 4 5 6 7 |
jshell --feedback verbose | Welcome to JShell -- Version 9.0.1 | For an introduction type: /help intro jshell> 5*2+1 $1 ==> 11 | created scratch variable $1 : int |
Мы также можем указать различные режимы загрузки. Их у нас три:
- DEFAULT: Режим по-умолчанию, загружает стандартные пакеты.
- PRINTING: Позволяет использовать методы print(), printf() и println() без обращение к System.out
123456jshell --startup PRINTING| Welcome to JShell -- Version 9.0.1| For an introduction type: /help introjshell> println("looks good")looks good - JAVASE: Загружает все пакеты из Java SE
12345jshell --startup JAVASE| Welcome to JShell -- Version 9.0.1| For an introduction type: /help introjshell>
Окей, загрузить пакеты в JShell нам удалось, а как их увидеть? В JShell есть множество полезных команд, одна из них - /imports
1 2 3 4 5 6 7 8 9 10 11 12 |
jshell --startup JAVASE | Welcome to JShell -- Version 9.0.1 | For an introduction type: /help intro jshell> /imports | import java.applet.* | import java.awt.* | import java.awt.color.* | import java.awt.datatransfer.* | import java.awt.desktop.* .................................. Список длинный, ведь мы загрузили все пакеты JAVA SE |
Чтобы увидеть список всех команд, воспользуемся командой /help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
jshell> /help | Type a Java language expression, statement, or declaration. | Or type one of the following commands: | /list [<name or id>|-all|-start] | list the source you have typed | /edit <name or id> | edit a source entry referenced by name or id | /drop <name or id> | delete a source entry referenced by name or id | /save [-all|-history|-start] <file> | Save snippet source to a file. | /open <file> | open a file as source input ......................................................... Список не полный, рекомендуем проверить его самим |
3. Импорт классов
Хорошо, а как импортировать конкретные классы или пакеты? Как и раньше, используя ключевое слово import
1 2 3 4 |
jshell> import java.util.Set jshell> Set.of(1,2,3) $2 ==> [1, 2, 3] |
import static так же работает
1 2 3 4 |
jshell> import static java.util.Map.of; jshell> of("key","value") $2 ==> {key=value} |
4. Импорт библиотек
В JShell можно импортировать целые библиотеки как внешние Jar-файлы. Для этого нужно указать путь к Jar-файлу через флаг --class-path (В даном случае Jar-ник находится в той же директории, где и запускался JShell)
1 2 3 4 5 6 7 8 |
jshell --class-path guava-19.0.jar | Welcome to JShell -- Version 9.0.1 | For an introduction type: /help intro jshell> import com.google.common.collect.Sets; jshell> Sets.newHashSet(1,2,3,4) $2 ==> [1, 2, 3, 4] |
Так же можно импортировать модули Java 9 посредством флага --add-modules
1 2 3 4 5 6 7 8 |
jshell --add-modules java.sql | Welcome to JShell -- Version 9.0.1 | For an introduction type: /help intro jshell> import java.sql.Date; jshell> new Date(4675675465463L) $4 ==> 2118-03-02 |
5. Послесловие
JShell - продвинутый инструмент для испытания новых возможностей языка, а также обучения. Особенно оценить новинку должны те, кто только собираются учить Java.
Спасибо, что были с нами 🙂