gpt4 book ai didi

java - 如何使用jshell执行java脚本?

转载 作者:行者123 更新时间:2023-12-02 00:30:57 29 4
gpt4 key购买 nike

考虑到 Java 9 即将到来,我们终于可以使用 jshell 实现 java REPL,我希望有一种方法可以将 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""$@";退出$?

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

//usr/bin/env jshell --show-version "$0" "$@"; exit $?
System.out.println("Hello World")
/exit

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

额外命令行选项--execution local可防止jshell生成另一个虚拟机。这会加快启动时间,并且如果脚本代码引发异常,本地虚拟机将退出。

请参阅 jshell --helpjshell --help-extra 的输出以了解更多选项。

更新

另请查看https://github.com/jbangdev/jbang 享受 Java 脚本编写的乐趣,它为从命令行运行 .java 文件提供了一个简洁的包装器。

关于java - 如何使用jshell执行java脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58017323/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com