【问题标题】:JShell Edit Pad Not Executing / Running Code SnippetsJShell Edit Pad 不执行/运行代码片段
【发布时间】:2019-09-25 04:11:02
【问题描述】:

我对 jshell 和 Java 非常陌生,并且遇到了 jshell 编辑板不接受或将代码 sn-ps 传输到 jshell 的问题。当我输入下面的代码 sn-p 并按“接受”和“退出”时,什么也没有发生。 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);

但是,当我将相同的代码 sn-p 直接输入到 jshell 窗口(命令提示符)中时,该窗口会正常显示。可能出了什么问题?我犯了什么错误?

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

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

感谢您的帮助!

【问题讨论】:

  • JShell 在 JDK 8 中尚不可用,您至少需要 JDK 9。

标签: java java-10 jshell


【解决方案1】:

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

/reset

之前

/edit

打开JShell Edit Pad

试试JDK 12

【讨论】:

    【解决方案2】:

    这与其说是一个答案,不如说是更多的信息。 如果我找到修复程序,我会更新它。

    我在“Learn Java The Easy Way”第 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 并输入原始的 sn-p,单击“接受”,然后单击“退出”,但没有任何反应。当我再次运行 /edit 时,只有导入存在。我在再次退出之前重新输入并复制了脚本,但仍然没有。但是,当我再次打开 /edit 时,第 1 行和第 2 行就在那里。所以我再次粘贴了整个脚本,再次退出,并再次运行 /edit。这次有 1-3 行。我重复了这一点,每次执行 one 多行,再次运行 /edit 时,脚本中会出现 one 多行,直到第十次按预期打开窗口.

    这不是一个答案或修复,但我认为它可能会给其他人一个线索来了解正在/没有发生的事情。就我而言,我想知道这是否可能是由混合配置或 OpenJDK 中的错误引起的。同时,我将继续阅读本书,因为无论如何这只是“概念证明”材料。

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

    【讨论】:

      【解决方案3】:

      我还能够最终让它“逐行”工作,如前所述。然后我重启了机器,第一次使用 jdk 11.0 让它工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-29
        • 2011-01-06
        • 1970-01-01
        • 2020-06-04
        相关资源
        最近更新 更多