我是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。
感谢您的协助!
答案 0 :(得分:0)
答案 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);
然后使用/ reset将其关闭,并使用/ edit打开JShell Edit Pad并输入原始代码段,单击“接受”,然后单击“退出”,但是什么也没有发生。当我再次运行/ edit时,只有导入在那儿。我重新输入并复制了脚本,然后再次退出,仍然一无所获。但是,当我再次打开/ edit时,第1行和第2行在那里。因此,我再次粘贴了整个脚本,再次退出,然后再次运行/ edit。这段时间线1-3在那儿。我重复了一次,每次执行更多的 行,并且再次运行/ edit时脚本中又出现了一个,直到第十次按预期方式打开窗口。
这不是答案或解决方法,但我认为这可能会为其他人提供线索,以了解正在发生/未发生的事情。就我而言,我想知道这可能是由于混合配置或OpenJDK中的错误引起的。同时,我将继续讲这本书,因为无论如何这仅仅是“概念验证”材料。
答案 2 :(得分:0)
我也终于能够使它“逐行”运行,如前所述。然后,我重新启动了计算机,并使用jdk 11.0使其首次运行。