长故事
Oracle的网站涉及Jshell和外部编辑
,它读取要设置jshell以打开您选择的编辑器,请使用 /set编辑器命令。 /set编辑器命令的参数是启动要使用的外部编辑器所需的命令...
在“外部编辑器”窗口中定义x并保存更改会在jshell窗口中生成[an]输出...
关闭外部编辑器将还原jshell提示。+现在问题是我尝试使用记事本++作为我的外部编辑器,但是它不遵循“在外部编辑器窗口中定义x并保存更改在jshell窗口中生成[AN]输出的文档。” 我将编辑器设置为记事本++。我调用
/edit
,它打开了记事本++。然后,我写下
int x;
并点击
ctrl
S
保存,可惜在Jshell窗口中什么也没发生。只有当我关闭整个记事本++应用程序时,Jshell才会注册更改并评估/执行代码。我注意到当我到vs代码时发生了类似的事情。否,我还注意到,当我喜欢文档读取时,Jshell实际上会承认更改。
为什么当我尝试将其与Notepad ++或VS代码一起使用时,为什么不遵循网站上的文档?我可以确认我正在使用jshell21.0.5.。“在外部编辑器窗口中定义x并保存更改会在jshell窗口中生成[a]输出”不一定意味着在保存编辑的文件后立即出现输出。输出IS生成了,但仅在恢复jshell提示时才显示出来,文档说这是在关闭外部编辑器时发生的。这是我在Windows和Linux上看到的行为,使用任何类型的编辑器: 当i键入编辑器中并保存文件(例如使用
ctrl
s),直到我退出编辑器之前,JSHELL中什么也不会发生。然后,只有这样,Jshell显示了生成的输出:
/set editor
/set editor Notepad
开始,我会得到:
/set editor
当您关闭记事本++窗口时,您会看到的是,jshell提示符未恢复,因为默认情况下,Notepad ++关闭其窗口时不会退出:它仅保存文件并关闭窗口,而不是应用程序本身。应用程序(即运行记事本++的OS进程)继续运行。要完全退出,您必须在系统托盘中关闭它。如果您愿意,您可以配置它不要这样做。 VS代码也是如此。