7

如何使用非零错误代码/exit进行jshell会话?

  • /exit产生:进程以退出代码 0 结束
  • /exit 1产生:进程以退出代码 0 结束
  • throw new Error("1")产生:java.lang.Error throw: 1 at (#24:1)` 并且进程以退出代码 0 结束
  • System.exit(1)产量:状态引擎终止。使用以下命令恢复定义: /reload -restore ... 并且 jshell 会话不会终止。

类似的 bash 命令set -e不可用。

4

1 回答 1

5

现在,JShell 随JDK 10一起发布,后来又推出了一个新版本,/exit它采用一个可选片段作为参数。该片段被评估为将返回给调用进程的错误代码。有关详细信息,请参阅http://mail.openjdk.java.net/pipermail/kulla-dev/2017-November/002129.html

/exit以下是使用 jdk-10+ea-33 的新命令的帮助文本:

|  Welcome to JShell -- Version 10
|  For an introduction type: /help intro

jshell> /help exit
|
|  /exit
|
|  Leave the jshell tool.  No work is saved.
|  Save any work before using this command
|
|  /exit
|       Leave the jshell tool.  The exit status is zero.
|
|  /exit <integer-expression-snippet>
|       Evaluate the snippet.  If the snippet fails or is not an integer expression,
|       display the error.  Otherwise leave the jshell tool with the
|       value of the expression as the exit status

jshell> /exit 123
|  Goodbye (123)

JDK 9的注意事项:您不能使用/exit非零错误代码退出 JDK 9 上的 jshell 会话。有关详细信息,请参阅https://bugs.openjdk.java.net/browse/JDK-8185840

于 2017-08-15T09:50:13.050 回答