亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當我在 Windows cmd 中按 BackSpace 按鈕時 Jshell 崩潰

當我在 Windows cmd 中按 BackSpace 按鈕時 Jshell 崩潰

收到一只叮咚 2022-12-21 13:03:50
當我打開窗口cmd并鍵入jshell時,它可以工作,但是當我寫東西時。每當我按下BackSpace鍵時。例如,如果我想刪除一個錯誤的字母。jshell 因以下錯誤而崩潰,我正在使用windows 10,并且C:\Program Files\Java\jdk-11.0.1是我在 Windows 中的唯一路徑System Environment variables,我也cmd用作終端。這是錯誤:Exception in thread "main" java.lang.NullPointerException: charsetName        at java.base/java.lang.String.<init>(String.java:464)        at java.base/java.lang.String.<init>(String.java:537)        at jdk.internal.le/jdk.internal.jline.extra.AnsiInterpretingOutputStream.write(AnsiInterpretingOutputStream.java:92)        at java.base/java.io.OutputStream.write(OutputStream.java:157)        at java.base/sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:233)        at java.base/sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:312)        at java.base/sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:316)        at java.base/sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:153)        at java.base/java.io.OutputStreamWriter.flush(OutputStreamWriter.java:254)        at jdk.internal.le/jdk.internal.jline.console.ConsoleReader.flush(ConsoleReader.java:1052)        at jdk.internal.le/jdk.internal.jline.console.ConsoleReader.readLine(ConsoleReader.java:3259)        at jdk.internal.le/jdk.internal.jline.console.ConsoleReader.readLine(ConsoleReader.java:2383)        at jdk.internal.le/jdk.internal.jline.console.ConsoleReader.readLine(ConsoleReader.java:2371)        at jdk.jshell/jdk.internal.jshell.tool.ConsoleIOContext.readLine(ConsoleIOContext.java:142)        at jdk.jshell/jdk.internal.jshell.tool.JShellTool.getInput(JShellTool.java:1261)        at jdk.jshell/jdk.internal.jshell.tool.JShellTool.run(JShellTool.java:1174)        at jdk.jshell/jdk.internal.jshell.tool.JShellTool.start(JShellTool.java:975)        at jdk.jshell/jdk.internal.jshell.tool.JShellToolBuilder.start(JShellToolBuilder.java:254)        at jdk.jshell/jdk.internal.jshell.tool.JShellToolProvider.main(JShellToolProvider.java:120)
查看完整描述

2 回答

?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

這是活動代碼頁的問題。具體來說65001是一個問題和流行的問題,所以我最好的猜測是這就是正在使用的問題,但稍后請參閱鏈接以獲取一些選擇。


在窗戶上:


> java --version

java 11.0.1 2018-10-16 LTS

Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)

Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

使用檢查活動代碼頁chcp。如果它被設置為65001(也許你一直在玩這個 hack 來讓 utf-8 字符顯示在你的終端上)這個問題是可靠地重現的。


> chcp 65001

Active code page: 65001

> jshell

|  Welcome to JShell -- Version 11.0.1

|  For an introduction type: /help intro


jshell>TypeAnything<backspace>Exception in thread "main" java.lang.NullPointerException: charsetName

        at java.base/java.lang.String.<init>(String.java:464)

        at ...


解決方案

從https://docs.oracle.com/javase/6/docs/technotes/guides/intl/encoding.doc.html中挑選,但chcp 850應該可以解決問題。


> chcp 850 && jshell

Active code page: 850

|  Welcome to JShell -- Version 11.0.1

|  For an introduction type: /help intro


jshell> TypeAnything<backspace>

特定于 PowerShell

想法是一樣的(更改控制臺編碼),但命令略有不同。同樣的想法是改變編碼。查看當前代碼頁[Console]::OutputEncoding.CodePage,我們希望將其切換為列表中的一個850。


> [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding(850)

> jshell


查看完整回答
反對 回復 2022-12-21
?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

我嘗試使用zulu openjdk-11重現該問題,Jshell 運行良好。



查看完整回答
反對 回復 2022-12-21
  • 2 回答
  • 0 關注
  • 186 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號