You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JShell执行.jsh文件报错及System.console()空指针问题求助

解决方案

一、修复--execution local Intro.jsh的语法错误

--execution local是JShell的启动参数,无法在JShell交互会话内部执行。正确用法是在终端直接运行:

jshell --execution local Intro.jsh

此命令会以本地执行模式直接加载并运行脚本,无需先进入JShell交互环境。

二、解决System.console()返回null的空指针异常

JShell交互环境中,System.console()的控制台实例获取逻辑存在限制(尤其是通过/open加载脚本时),推荐两种替代方案:

方案1:使用JShell内置readLine()方法

修改Intro.jsh脚本,替换System.console().readLine()为JShell适配的工具方法:

System.out.println("Hello! Please enter some text");
String x = readLine();
System.out.println("You wrote " + x);

修改后,无论是通过jshell Intro.jsh直接启动,还是在JShell内部用/open Intro.jsh加载,都能正常获取用户输入。

方案2:用原生终端直接启动JShell运行脚本

若必须保留System.console(),需确保JShell的输入输出直接绑定原生终端:

  • 打开MacOS自带「终端」应用(避免使用IDE内嵌终端)
  • 切换到脚本所在目录后执行:
jshell --execution local Intro.jsh

该模式下System.console()可正常获取控制台实例,不会返回null。

内容的提问来源于stack exchange,提问作者user18790606

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 02:30:48