在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。