4

我在Windows 7上使用JDK 9 build 179 。我有我的Windows 7命令外壳的“屏幕缓冲区大小宽度”属性,设置为一个很大的数字,因为这是我滚动的方式。正常工作;当我只是单独使用Windows shell 时。

不幸的是,当我使用JShell时,我的“屏幕缓冲区大小宽度”属性被忽略,并且JShell将我的长线包裹在自己身上。当换行时,它不会创建新行。相反,光标会翻倍回到同一行的开头并覆盖该行中的字符。

看看这个屏幕录像,看看我的意思

它似乎使用窗口实际宽度的最右边尺寸作为换行的提示;忽略“屏幕缓冲区大小宽度”属性。该属性在生活中的唯一目的是明确防止换行并允许最多 9999 个字符的长行。

JDK 9 ea+166以来,我已经忍受了这种烦人的废话。我耐心地等了几个月;期望它会在JDK 9的一般发布时得到修复。没有这样的运气。

拜托,谁能告诉我如何解决这个问题的秘密?

提前致谢。

4

1 回答 1

2

由于Oracle 已正式确认我发现的问题确实是一个错误,因此我自己对这个问题的回答是“改用 BeanShell 的交互式控制台”。

bsh已经满足了我个人 Java REPL 的所有需求,持续了八年或十年。我目前使用 jshell 没有什么是我不能在bsh中做的;在我看来,更轻松、更直观。

当然,jshell 做了一些bsh没有做的事情。但是,如果像我一样,您使用 Java REPL 只是为了在命令行上试用代码,那么bsh作为一个已经成熟的 Java REPL 选项是无可匹敌的。数以千计(如果不是数百万)开发人员在很多年(实际上是自 1999年以来)尝试和证明了这一点。

于 2017-11-21T14:04:11.473 回答