如何使用jshell执行Java脚本?

鉴于Java 9已经来临,我们终于可以拥有Java

REPL了,jshell我希望有一种方法可以在脚本中添加shebang并对其进行jshell解释。

我尝试创建test.jsh

#!/usr/bin/env jshell -s

System.out.println("Hello World")

/exit

然而,这给出了:

⚡ ./test.jsh

| Error:

| illegal character: '#'

| #!/usr/bin/env jshell -s

| ^

| Error:

| illegal start of expression

| #!/usr/bin/env jshell -s

| ^

Hello World

事实证明,OpenJDK

https://bugs.openjdk.java.net/browse/JDK-8167440中对此有增强要求。

还有其他方法吗?

回答:

//usr/bin/env jshell --show-version --execution local "$0" "$@"; exit $?

作为的第一行test.jsh。该test.jsh脚本可能如下所示:

//usr/bin/env jshell --show-version "$0" "$@"; exit $?

System.out.println("Hello World")

/exit

--show-version当然,命令行选项是可选的,但会立即反馈该工具正在运行。

额外的 命令行选项--execution

local阻止jshell产卵另一个VM。这样可以加快启动时间,并且如果脚本代码引发异常,则本地VM将退出。

请教输出jshell --helpjshell --help-extra更多的选项。

还可以看看https://github.com/maxandersen/jbang

玩Java脚本

,它为.java命令行中运行的文件提供了一个简洁的包装器。

以上是 如何使用jshell执行Java脚本? 的全部内容, 来源链接: utcz.com/qa/411664.html

回到顶部