JShell编辑板未执行/运行代码片段

时间:2018-05-14 02:58:47

标签: java java-10 jshell

我是jshell和Java的新手,我遇到了jshell编辑板不接受或将代码片段传输到jshell的问题。当我输入下面的代码片段并按"接受"和"退出"一切都没有发生。在jshell终端窗口中没有显示错误消息,我没有在屏幕上显示该窗口。代码似乎没有运行。

import javax.swing.*;

JFrame window = new JFrame("Another New Window");
JPanel panel = new JPanel();
JButton button = new JButton("Click me!");

panel.add(button);
window.add(panel);
window.setSize(300,100);
button.addActionListener(e -> System.out.println("Ouch! You clicked me!"));
window.setVisible(true);

但是,当我将相同的代码段直接输入到jshell窗口(命令提示符)时,窗口就会出现。怎么可能出错?我犯了什么错误?

我注意到我能够获得简单操作的结果,例如2+2;,以便在按下"接受"后在jshell控制台窗口中显示答案,但输入的实际代码似乎根本没有运行默认编辑板。

我正在运行Windows 10,并且安装了最新版本的JDK 8和10。

感谢您的协助!

3 个答案:

答案 0 :(得分:0)

我已经安装了JDK 12JRE 8。它按预期工作。要重新开始JShell Edit Pad,只需确保您

/reset

之前

/edit

打开JShell Edit Pad

enter image description here

尝试使用JDK 12

答案 1 :(得分:0)

除了提供更多信息外,这还不是一个答案。 如果找到修复程序,我将对其进行更新。

我正在“学习Java的简便方法”第3章中完成同一练习,并发现了相同的问题。这就是在JShell中一次按预期输入1行打开了JFrame。

jshell> import javax.swing.JFrame;
jshell> JFrame f = new JFrame("Hello");
jshell> f.setSize(300,300);
jshell> f.setVisible(true);

JShell CLI input works

然后使用/ reset将其关闭,并使用/ edit打开JShell Edit Pad并输入原始代码段,单击“接受”,然后单击“退出”,但是什么也没有发生。当我再次运行/ edit时,只有导入在那儿。我重新输入并复制了脚本,然后再次退出,仍然一无所获。但是,当我再次打开/ edit时,第1行和第2行在那里。因此,我再次粘贴了整个脚本,再次退出,然后再次运行/ edit。这段时间线1-3在那儿。我重复了一次,每次执行更多的 行,并且再次运行/ edit时脚本中又出现了一个,直到第十次按预期方式打开窗口。Edit Pad parsing/executing only one additional line on each exit.

这不是答案或解决方法,但我认为这可能会为其他人提供线索,以了解正在发生/未发生的事情。就我而言,我想知道这可能是由于混合配置或OpenJDK中的错误引起的。同时,我将继续讲这本书,因为无论如何这仅仅是“概念验证”材料。

  • Fedora 29
  • JShell-版本11.0.4
  • java -version
  • openjdk版本“ 1.8.0_212”
  • OpenJDK运行时环境(内部版本1.8.0_212-b04)
  • OpenJDK 64位服务器VM(内部版本25.212-b04,混合模式)
  • javac 11.0.4

答案 2 :(得分:0)

我也终于能够使它“逐行”运行,如前所述。然后,我重新启动了计算机,并使用jdk 11.0使其首次运行。