idea 启动命令行的时候提示不能创建PTY

Python037

idea 启动命令行的时候提示不能创建PTY,第1张

问题描述:

昨天上午,凯哥还在好好的使用idea,中午的时候,360扫描,好像要升级还是要干嘛的,没细看,然后凯哥就点击确定。结果到下午使用idea的Terminal 命令行的时候提示,如下图错误:

failed tostart[cmd.exe]

然后重新安装了ieda,又提示如下错误:counld't create PTY

然后百度、google.从搜索出的结果来看,可以总结为以下几个问题:

1:cmd命令全路径。如下图:

凯哥也修改了,结果是,然并卵。

2:使用管理员权限启动:

将idea的兼容性修改已管理员身份允许此程序。如下图:

结果依然是然并卵。

3:还有说把CMD使用旧版本。

使用旧版本控制台,选项选中,如下图:

结果依然是然并卵。

然后又去官网查下问题。修改也是类似的,修改ideade shell path位置。实际是什么用。

反正凯哥百度了一天,都没用。就在绝望的时候,再来看看错误原因:

注:此错误原因是在idea 2020.1的版本下打印的。凯哥换了2018、2019、2020 三个版本的idea.

Cannot open Local Terminal

Failed to start [C:\Windows\system32\cmd.exe] in D:/kaigejava/kaigejava

Error starting winpty: ConnectNamedPipe failed: Windows error 232

This error can occur due to antivirus blocking winpty from creating a pty. Please exclude the following files in your antivirus:

- E:\kaigejava\ideaIU-2020.1.2.win\lib\pty4j-native\win\x86_64\winpty-agent.exe

- E:\kaigejava\ideaIU-2020.1.2.win\lib\pty4j-native\win\x86_64\winpty.dll

于是凯哥搜索了:

Error starting winpty: ConnectNamedPipe failed: Windows error 232

偶然间,就这么不小心的看到了一篇文章,说是360安全卫士的原因导致的。

于是凯哥回忆出现问题的原因,还真的是360诱导的。

原因,360安全防护中的进程防护处于安全考虑禁止了其他进程获取cmd的权限,如果需要放开此权限,可以如下设置:

步骤:打开360安全卫士。在右侧有个【安全防护中心】。如下图:

点击打开后。有个进程防护。如下图:

把进程防护关掉。然后在idea中,点击terminal的加号,就可以了。如下图:

如果关闭掉之后:360会出现一个叹号。如下图:

这种方法只是临时关闭了安全防护。但是有可能电脑失去安全保护。

使用第二种方案:将idea添加到信任区。但是这个需要重启电脑哦~

具体步骤:

将:

- E:\kaigejava\ideaIU-2020.1.2.win\lib\pty4j-native\win\x86_64\winpty-agent.exe

- E:\kaigejava\ideaIU-2020.1.2.win\lib\pty4j-native\win\x86_64\winpty.dll

这两个文件添加到360信任区。

360首页,木马查杀-->信任区。如下图:

点击添加文件:

将上面两个文件添加进去。获取是添加目录,直接将上面两个文件的根目录添加进去。把安全防护中心的-进程保护打开,然后重启电脑,再试试。

就这个问题,凯哥(凯哥Java:kaigejava)搞了一天时间啊。浪费啊!不过,现在已经解决了。分享出来,希望能够帮助遇到类似问题的你。

说明:此方法时候解决360安全卫士导致Idea、webstorm等无法打开终端Terminal的问题Cannot open Local Terminal

Javaweb-案例练习-5-商品数量修改和合计金额实现

凯哥java 凯哥java

商品数量和小计修改实现

前面一篇完成了添加购物的功能,这篇来完善购物车页面上,修改商品数量和小计这两处地方的代码。

需求

我们的需求如下图

购物车页面,每一个商品数量这列的- + 可以点击,然后小计这列金额跟随变化。

需求简单分析

下面来简单看看这个修改思路:

在- +上写onclick事件,调用一个js方法,例如changeNum(id,num)

跳转到一个servlet去处理这个减一还是加一

把金额回显到小计这一列。

在servlet方法中,其中一个参数肯定是Book.id, 第二个参数是购买数量num,这个num也需要从session中拿到。

修改cart.jsp

在数量这个 +控件,添加一个onclick事件,调用js方法changeNum(id),在方法中changeNum(),跳转到一个servlet去处理。

新建一个servlet

先创建一个ChangeNumServlet.java, 完整代码如下

部署测试

接下来进行部署到tomcat,重启服务,点击- +看看能不能修改数量

到这里,说明修改数量-+这两个控件代码没问题,接下来写小计中代码。

小计金额代码实现

小计金额需要根据数量和价格进行变动,这里价格是固定的,数量是变化的。很简单就是数量乘价格就是小计的金额。

存,刷新购物车页面

这样看起来没问题,但是有边界问题,我们没有考虑到。

第一个问题,数量当前可以是负数

二个边界,数量可以大于库存

解决商品数量边界问题

在cart.jsp中的changeNum(), 我们还需要把库存这个变量作为参数传入,然后写两个if判断,分别判断商品数量小于1和商品数量大于库存的情况。

在Servlet中需要处理num=0的情况,也就是从cart中移除这个商品。这个代码,也会在后面点击X这个从购物车删除商品控件上会用到。

部署看看,点击商品数量为1的时候,再点击减号,看看会不会弹出提示。

击OK,看看会不会从购物车页面删除这本书。

删除商品控件代码实现

页面上还有这个红色X,点击可以删除商品。这个很简单,就是我地址传过去,让num=0,这样后台servlet就会处理,和上面逻辑一样。

在cart.jsp中找到这个红色X,大概在93行位置跳转地址改成这样。

style="color:#FF0000font-weight:bold">X

保存代码,可以测试以下,点击就直接删除,最好JS代码提示以下是否确认删除。

解决合计金额

每个商品的小计计算出来了,现在我们来解决以下合计金额。

重点看以下三部分代码

第一部分,定义一个sum变量,在foreach之前定义,初始化值为0

第二部分,在foreach结束前,统计sum的值

第三部分,合计这块直接引用${sum},得到购物车全部商品合计金额。

合计:  ${sum}元

1、根据你给的信息我可以帮你解答;Java培训是非常多的,给你讲讲Java培训的一个基本流程吧!看下面:

2、首先,这些培训机构呢,基本上都是分为初级-中级-高级阶段

3、初级是Java的基础知识部分

中级是web网页制作部分

高级是三大框架ssh

4、基本上每一个部分末了会有一个适应的项目供你去做,当然,是一个4人左右的小团体去做的,

所以呢,你需要把上课的每一阶段都认真听好,课后做好练习

5、根据你的信息,建议你跟培训机构提出先听几节课的要求,然后再开始斟酌一下要不要去,这是

必须可以有的

6、基本上培训后都会通过自己做的项目来得到提升,如果都是很好的完成,那么自己求职也是非常

的有信心的。

7、希望能够帮助你