在Java 9中,JShell中有哪些不同的快捷键?

在Java 9中,JShell是一个重要的新功能。它是一个交互式的Java编程工具,可以让用户在不编写源代码文件的情况下,直接与Java编译器交互并执行Java代码。JShell提供了一些非常有用的快捷键来更方便地使用它。在本文中,我们将介绍Java 9中JShell中的不同快捷键。

1. 基本快捷键

1.1 执行代码

在JShell中,您可以使用快捷键执行代码。在输入完代码后,按下"Enter",JShell将尝试运行输入的代码,并返回运行结果。

jshell> int x = 10

x ==> 10

jshell> System.out.println(x)

10

1.2 清除屏幕

使用CTRL+L快捷键清除屏幕中的所有输出。

1.3 退出JShell

使用CTRL+D快捷键可以退出JShell。

2. 编辑代码

2.1 编辑模式

通过输入/edit命令可以进入编辑模式。在编辑模式下,您可以使用所有常规的编辑快捷键,例如剪切、复制、粘贴等,编辑您的代码。

jshell> /edit

| Edit previous buffer (Ctrl-p/Ctrl-n/Ctrl-r/Ctrl-s/Ctrl-f/Ctrl-h/Ctrl-a) or enter code to edit followed by ';'.

public class HelloWorld {

public static void main(String[] args) {

System.out.println('Hello, World!');

}

}

| created class HelloWorld

jshell>

在编辑模式下,您可以使用Ctrl-p/Ctrl-n/Ctrl-r/Ctrl-s/Ctrl-f/Ctrl-h/Ctrl-a等常规编辑快捷键。例如,您可以使用Ctrl-p键来查看前一个命令。

2.2 在编辑模式下保存和退出

您可以使用/save命令保存您在编辑模式下编写的代码。例如,如果您想要保存名为MyClass.java的类文件:

jshell> /save MyClass.java

| Wrote code to file MyClass.java.

使用/exit命令退出编辑模式。

3. 修改代码

3.1 替换代码

使用/replace命令可以替换以前定义的代码。例如,如果您想要将以前定义的代码“int x = 10”更改为“int x = 20”:

jshell> int x = 10

x ==> 10

jshell> /replace x = 20

$1 ==> 20

在以上示例中,我们首先定义了一个名为x的整数变量,并将其设置为10。然后可以使用/replace命令将x的值更改为20,并将其分配给新的变量$1。

3.2 修改之前的代码

您可以使用/edit之前的命令来修改先前输入的代码。例如,如果您想要修改上一个命令:

jshell> int x = 10

x ==> 10

jshell> /edit -2

| Edit previous buffer (Ctrl-p/Ctrl-n/Ctrl-r/Ctrl-s/Ctrl-f/Ctrl-h/Ctrl-a) or enter code to edit followed by ';'.

int y = 20;

System.out.println(x + y);

| modified variable y

jshell>

30

在以上示例中,我们首先定义了一个名为x的整数变量,并将其设置为10。然后,我们使用/edit -2命令编辑之前的代码,并将y的值更改为20。最后,我们使用System.out.println()方法显示x和y的总和。

4. 处理异常

4.1 查看当前异常

如果您在JShell中遇到异常,您可以使用/exp命令查看当前发生的异常:

jshell> int a = 10 / 0

| java.lang.ArithmeticException thrown: / by zero

| at (#1:1)

在以上示例中,当我们尝试将10除以0时,我们会遇到一个java.lang.ArithmeticException错误。使用/exp命令,可以查看当前遇到的异常。

4.2 清除异常

使用/clr命令来清除所有异常:

jshell> /clr

| All declared variables and classes cleared.

| All recorded exceptions cleared.

在以上示例中,我们使用/clr命令清除所有异常,并清除JShell中定义的所有变量和类。

5. 查看帮助

5.1 查看命令列表

使用/help快捷键可以查看所有可用命令的列表。

jshell> /help

| Type a Java language expression, statement, or for help, type "/help".

| Commands:

| /list [/all | <name>] [#<snippet-id>] -- list the source you have typed

| /open [<uri>] -- open a file (local or URI)

| /save [<file>] -- Save current session to a file

| /edit [#<snippet-id>] -- edit a code snippet referenced by id

| /drop [#<name> | #<id>] -- delete a declared element

| /types [<name>] -- list the type names in a package or class

| /vars [<name>] -- list the declared variables with their values

| /methods [<name>] [<method-name>] -- list the methods in a class

| /fields [<name>] -- list the fields in a class

| /imports [<name>] -- list the import statements and packages

| /set editor <editor-cmd> -- set external editor command to run

| /feedback [debug | normal | terse]- set feedback mode

| /exit -- exit the jshell session

| /help -- display this help message

|

| For more information about a command: /help <command>

以上输出中,我们可以看到可用命令的列表。

5.2 查看命令详细描述

使用/help <command>快捷键可以查看给定命令的详细信息。例如,如果您想了解/set命令的更多信息:

jshell> /help /set

| Command:

| /set - set a value

|

| Syntax:

| /set <name> [<value>]

|

| Description:

| Set a value associated with a name. If no value is supplied the named item is

| cleared.

|

| The set command is used for setting and clearing a variety of named items.

|

| Values can typically be any expression or a string literal. The command is

| case insensitive.

|

| Values can be unset by supplying no <value>.

|

| Some of the valid names are:

| editor - set external editor command to run

| start - set the start up script file

| feedback - set feedback mode

| formatting - control formatting

| wrap - control line wrapping

|

| Examples:

|

| /set editor vi or /set editor notepad

在此示例中,我们使用/help /set快捷键查看/set命令的详细信息和用法。

结论

在Java 9中,JShell提供了很多有用的快捷键来更方便地使用它。本文列举了一些重要的快捷键,例如执行代码、清除屏幕、退出JShell、编辑代码、替换代码、修改之前的代码、处理异常、查看帮助等。熟悉这些快捷键可以使您更有效地使用JShell。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签