表现
Alt+F12打开默认终端或者其他终端报错:
Cannot open Local Terminal Failed to start
[C:\Program, Files\PowerShell\7\pwsh.exe] in C:\workspace\
点击 help -> Show Log in Explorer 获取详细的报错日志
UpdateProcThreadAttribute failed: GetLastError() returned 50
Caused by: com.pty4j.windows.conpty.LastErrorExceptionEx: UpdateProcThreadAttribute failed: GetLastError() returned 50: 不支持该请求。
at com.pty4j.windows.conpty.ProcessUtils.prepareStartupInformation(ProcessUtils.java:68)
at com.pty4j.windows.conpty.ProcessUtils.startProcess(ProcessUtils.java:24)
at com.pty4j.windows.conpty.WinConPtyProcess.<init>(WinConPtyProcess.java:42)
at com.pty4j.PtyProcessBuilder.start(PtyProcessBuilder.java:139)
at org.jetbrains.plugins.terminal.LocalTerminalDirectRunner.createProcess(LocalTerminalDirectRunner.java:251)
原因
在尝试使用 Windows ConPTY API 时遇到了操作系统级的错误,错误码 50 表示“不支持该请求”。
ConPTY 需要 Windows 10 1809 版本及更高版本。如果你的系统版本低于此要求,你需要更新你的操作系统或使用旧版的终端模拟(如 WinPTY)。
在cmd中使用 ver
命令
解决方法
在主菜单 Help -> Edit Custom VM Options 添加配置,然后重启IDE即可
-Dcom.pty4j.windows.disable.bundled.conpty=true
参考:Terminal (cmd prompt) not working after 2024.1 update