Это не столько ответ, сколько дополнительная информация.Я обновлю это, если найду исправление.
Я работаю над тем же упражнением в «Изучение Java, легкий путь», гл. 3, и обнаружил ту же проблему.То есть ввод по 1 строке за раз в JShell открыл JFrame, как и ожидалось.
jshell> import javax.swing.JFrame;
jshell> JFrame f = new JFrame("Hello");
jshell> f.setSize(300,300);
jshell> f.setVisible(true);
Затем он закрывается с помощью / reset и открывает JShellОтредактируйте Pad с помощью / edit и введите исходный фрагмент, нажмите «Принять», а затем «Выход», но ничего не происходит.Когда я снова запускаю / редактирую, там только импорт.Я перепечатал и скопировал сценарий, прежде чем снова выйти, но ничего не вышло.Однако, когда я снова открыл / отредактировал, строки 1 и 2 были там.Поэтому я снова вставил весь скрипт, снова вышел и снова запустил / отредактировал.На этот раз линии 1 - 3 были там.Я повторял это, и каждый раз одна дополнительная строка выполнялась и одна больше появлялась в скрипте при повторном запуске / редактировании, до десятого раза, когда окно открывалось, как ожидалось.
Это не ответ или исправление, но я подумал, что это может дать кому-то еще ключ к пониманию того, что происходит / не происходит.В моем случае мне интересно, может ли это быть вызвано смешанной конфигурацией или ошибкой в OpenJDK.А пока я перейду к этой книге, так как в любом случае это просто «доказательство концепции».
- Fedora 29
- JShell - Версия 11.0.4
- java -version
- openjdk версия "1.8.0_212"
- Среда выполнения OpenJDK (сборка 1.8.0_212-b04)
- Виртуальная 64-разрядная виртуальная машина OpenJDK (сборка 25.212-b04, смешанный режим)
- javac 11.0.4