当前位置: 首页 > 面试题库 >

如何使用jshell执行Java脚本?

阎宾实
2023-03-14
问题内容

鉴于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命令行中运行的文件提供了一个简洁的包装器。



 类似资料:
  • 问题内容: 我能运行Linux命令状或从Java没有问题,但不能得到执行的Python脚本。 这是我的代码: 什么都没有发生。它到达了SEND,但之后就停止了… 我正在尝试执行需要root权限的脚本,因为它使用串行端口。另外,我还必须传递带有一些参数的字符串(数据包)。 问题答案: 您不能像在示例中那样在内部使用PIPE 。PIPE是shell的一部分。 你可以做 将命令放入shell脚本并使用或

  • 问题内容: 我有一个通过URL执行的php脚本。(例如,www.something.com / myscript?param = xy) 在浏览器中执行此脚本时,它会给出编码结果,即负数或正数。 我想从Java代码(J2EE)执行此脚本并将结果存储在某个对象中。 我正在尝试使用它。我建立了连接,但无法获取结果。我不确定是否完全执行脚本。 问题答案: 该摘录来自官方Java教程(http://jav

  • 问题内容: 我的package.json文件中有一个npm任务,如下所示执行笑话测试: 我想使用grunt 执行此任务。我为此安装了grunt-run并添加了run任务,但是如何在其中调用此npm任务呢? 问题答案: 配置与文档中显示的示例类似的示例。 将的值设置为。 设置和在数组中。 Gruntfile.js 跑步 使用上面显示的配置通过CLI 运行将调用该命令。 注意:向Array 添加(或等

  • 问题内容: 与其他语言(例如或)的解释器类似,如何指示在脚本结尾处终止? 跟随命令 带脚本 版画 并等待其他命令。我希望它在文件末尾立即停止。 我正在寻找比脚本结尾更优雅的内容。 问题答案: 在脚本内部,使用jshell命令。这将在脚本末尾退出jshell。 检查此参考https://docs.oracle.com/javase/9​​/jshell/introduction-jshell.htm

  • 问题内容: 我无法执行长脚本,PDO引发异常: 如果我提交的脚本不包含变量,它将运行而不会出现问题。相同的脚本在phpmyadmin界面上运行。 这是我的代码段: 这是一些不能由PDO执行的测试: 我应该如何用pdo执行多行脚本? 感谢 阿曼。 问题答案: PDO不允许在一个query()请求中执行多个语句。但是您的@ra_LMC变量应该在当前连接中可见,因此您可以将第二行(SELECT)放入新的

  • 本文向大家介绍如何在Java 9中使用JShell实现ArrayList?,包括了如何在Java 9中使用JShell实现ArrayList?的使用技巧和注意事项,需要的朋友参考一下 JShell 是一个交互式Java Shell工具,使我们能够从Shell中执行Java代码并立即显示输出。JShell是从命令行运行的REPL(读取评估打印循环)工具。我们可以通过简单地在命令提示符下键入“ jsh