事实证明,罪魁祸首是生成新 CMD 时打印活动代码页。例如,尝试运行cmd.exe
看看是否得到类似的输出:
Microsoft Windows [Version 10.0.17763.253]
(c) 2018 Microsoft Corporation. All rights reserved.
Active code page: 65001
在编写一行代码(例如 import 语句或上面打印 hello world 的情况)后,会崩溃。 JShell 显然期望的是其他东西。
活动代码页的附加输出似乎也抛弃了许多其他解析器。实际上,我通过运行时发生的不同异常遇到了这个问题mvn release
。事实证明,Maven 的发布插件重磅推出cmd.exe
并尝试解析输出。这会产生如下有趣的异常:
Caused by: java.net.URISyntaxException: Illegal character in scheme name at index 6: Active%20code%20page:%2065001
C:/Users/USER_NAME/git/SOME_PROJECT
at java.net.URI$Parser.fail (URI.java:2915)
at java.net.URI$Parser.checkChars (URI.java:3086)
at java.net.URI$Parser.parse (URI.java:3112)
at java.net.URI.<init> (URI.java:600)
at java.net.URI.create (URI.java:881)
at org.apache.maven.scm.provider.git.gitexe.command.status.GitStatusConsumer.resolveURI (GitStatusConsumer.java:249)
Solution
我不得不禁用AutoRun
via regedit
运行的chcp 65001
命令。
这可以在以下任一路径中找到:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
以下 SO 答案将提供有关此问题的更多信息,并且是此问题的最终答案:https://stackoverflow.com/a/48203959/540873 https://stackoverflow.com/a/48203959/540873
Note这也可能发生在任何其他命令中AutoRun
那将会ECHO
某事,就我而言,这只是chcp
命令。
Java版本供参考:
java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)